From 80f27f5ea4ff367baf562bbdcf0f62cb93543985 Mon Sep 17 00:00:00 2001 From: huanghongxun Date: Sat, 11 Apr 2020 23:56:04 +0800 Subject: [PATCH] alt: navigate to game version list when no versions exist --- .../org/jackhuang/hmcl/ui/main/RootPage.java | 22 +++++++++++++++++-- .../jackhuang/hmcl/ui/versions/Versions.java | 7 ++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java index 489fa5821..0b69a049e 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/RootPage.java @@ -18,11 +18,9 @@ package org.jackhuang.hmcl.ui.main; import javafx.application.Platform; -import javafx.geometry.Insets; import javafx.scene.Node; import javafx.scene.control.SkinBase; import javafx.scene.layout.BorderPane; -import javafx.scene.layout.StackPane; import org.jackhuang.hmcl.event.EventBus; import org.jackhuang.hmcl.event.RefreshedVersionsEvent; import org.jackhuang.hmcl.game.HMCLGameRepository; @@ -182,6 +180,26 @@ public class RootPage extends DecoratorTabPage { return profileListPage; } + public Tab getMainTab() { + return mainTab; + } + + public Tab getSettingsTab() { + return settingsTab; + } + + public Tab getGameTab() { + return gameTab; + } + + public Tab getAccountTab() { + return accountTab; + } + + public Tab getProfileTab() { + return profileTab; + } + private static class Skin extends SkinBase { protected Skin(RootPage control) { diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java index 1efa254d3..239f0857f 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/Versions.java @@ -19,16 +19,17 @@ package org.jackhuang.hmcl.ui.versions; import javafx.stage.FileChooser; import org.jackhuang.hmcl.download.game.GameAssetDownloadTask; +import org.jackhuang.hmcl.game.GameDirectoryType; import org.jackhuang.hmcl.game.GameRepository; import org.jackhuang.hmcl.game.LauncherHelper; import org.jackhuang.hmcl.setting.Accounts; -import org.jackhuang.hmcl.game.GameDirectoryType; import org.jackhuang.hmcl.setting.Profile; import org.jackhuang.hmcl.task.Schedulers; import org.jackhuang.hmcl.task.Task; import org.jackhuang.hmcl.task.TaskExecutor; import org.jackhuang.hmcl.ui.Controllers; import org.jackhuang.hmcl.ui.FXUtils; +import org.jackhuang.hmcl.ui.construct.MessageDialogPane; import org.jackhuang.hmcl.ui.construct.PromptDialogPane; import org.jackhuang.hmcl.ui.construct.Validator; import org.jackhuang.hmcl.ui.download.ModpackInstallWizardProvider; @@ -150,7 +151,9 @@ public class Versions { if (Accounts.getSelectedAccount() == null) Controllers.getRootPage().checkAccount(); else if (id == null || !profile.getRepository().isLoaded() || !profile.getRepository().hasVersion(id)) - Controllers.dialog(i18n("version.empty.launch")); + Controllers.dialog(i18n("version.empty.launch"), i18n("launch.failed"), MessageDialogPane.MessageType.ERROR, () -> { + Controllers.getRootPage().getSelectionModel().select(Controllers.getRootPage().getGameTab()); + }); else return true; return false;