Move operations on version to new class 2
This commit is contained in:
@@ -30,6 +30,7 @@ import org.jackhuang.hmcl.download.game.GameAssetIndexDownloadTask;
|
|||||||
import org.jackhuang.hmcl.setting.EnumGameDirectory;
|
import org.jackhuang.hmcl.setting.EnumGameDirectory;
|
||||||
import org.jackhuang.hmcl.setting.Profile;
|
import org.jackhuang.hmcl.setting.Profile;
|
||||||
import org.jackhuang.hmcl.ui.export.ExportWizardProvider;
|
import org.jackhuang.hmcl.ui.export.ExportWizardProvider;
|
||||||
|
import org.jackhuang.hmcl.ui.versions.Versions;
|
||||||
import org.jackhuang.hmcl.ui.wizard.DecoratorPage;
|
import org.jackhuang.hmcl.ui.wizard.DecoratorPage;
|
||||||
import org.jackhuang.hmcl.util.FileUtils;
|
import org.jackhuang.hmcl.util.FileUtils;
|
||||||
|
|
||||||
@@ -114,12 +115,12 @@ public final class VersionPage extends StackPane implements DecoratorPage {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void onDelete() {
|
private void onDelete() {
|
||||||
deleteVersion(profile, version);
|
Versions.deleteVersion(profile, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private void onExport() {
|
private void onExport() {
|
||||||
exportVersion(profile, version);
|
Versions.exportVersion(profile, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -157,10 +158,10 @@ public final class VersionPage extends StackPane implements DecoratorPage {
|
|||||||
private void onManagement() {
|
private void onManagement() {
|
||||||
switch (managementList.getSelectionModel().getSelectedIndex()) {
|
switch (managementList.getSelectionModel().getSelectedIndex()) {
|
||||||
case 0: // rename a version
|
case 0: // rename a version
|
||||||
renameVersion(profile, version);
|
Versions.renameVersion(profile, version);
|
||||||
break;
|
break;
|
||||||
case 1: // remove a version
|
case 1: // remove a version
|
||||||
deleteVersion(profile, version);
|
Versions.deleteVersion(profile, version);
|
||||||
break;
|
break;
|
||||||
case 2: // redownload asset index
|
case 2: // redownload asset index
|
||||||
new GameAssetIndexDownloadTask(profile.getDependency(), profile.getRepository().getResolvedVersion(version)).start();
|
new GameAssetIndexDownloadTask(profile.getDependency(), profile.getRepository().getResolvedVersion(version)).start();
|
||||||
@@ -185,34 +186,4 @@ public final class VersionPage extends StackPane implements DecoratorPage {
|
|||||||
public void setTitle(String title) {
|
public void setTitle(String title) {
|
||||||
this.title.set(title);
|
this.title.set(title);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void deleteVersion(Profile profile, String version) {
|
|
||||||
boolean isIndependent = profile.getVersionSetting(version).getGameDirType() == EnumGameDirectory.VERSION_FOLDER;
|
|
||||||
boolean isMovingToTrashSupported = FileUtils.isMovingToTrashSupported();
|
|
||||||
String message = isIndependent ? i18n("version.manage.remove.confirm.independent", version) :
|
|
||||||
isMovingToTrashSupported ? i18n("version.manage.remove.confirm.trash", version, version + "_removed") :
|
|
||||||
i18n("version.manage.remove.confirm", version);
|
|
||||||
Controllers.confirmDialog(message, i18n("message.confirm"), () -> {
|
|
||||||
if (profile.getRepository().removeVersionFromDisk(version)) {
|
|
||||||
profile.getRepository().refreshVersionsAsync().start();
|
|
||||||
Controllers.navigate(null);
|
|
||||||
}
|
|
||||||
}, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void renameVersion(Profile profile, String version) {
|
|
||||||
Controllers.inputDialog(i18n("version.manage.rename.message"), (res, resolve, reject) -> {
|
|
||||||
if (profile.getRepository().renameVersion(version, res)) {
|
|
||||||
profile.getRepository().refreshVersionsAsync().start();
|
|
||||||
Controllers.navigate(null);
|
|
||||||
resolve.run();
|
|
||||||
} else {
|
|
||||||
reject.accept(i18n("version.manage.rename.fail"));
|
|
||||||
}
|
|
||||||
}).setInitialText(version);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void exportVersion(Profile profile, String version) {
|
|
||||||
Controllers.getDecorator().startWizard(new ExportWizardProvider(profile, version), i18n("modpack.wizard"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user