From fd9bb88033a11027afea96665ee75a7dc9cc038f Mon Sep 17 00:00:00 2001 From: Glavo Date: Thu, 6 Apr 2023 02:33:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9A=90=E8=97=8F=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=8C=89=E9=92=AE=20(#2018)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 添加隐藏提示按钮 * update * update * update * update --- .../org/jackhuang/hmcl/setting/Config.java | 15 +++++++++ .../org/jackhuang/hmcl/ui/Controllers.java | 11 +++++-- .../org/jackhuang/hmcl/ui/main/MainPage.java | 33 ++++++++++++------- .../org/jackhuang/hmcl/ui/main/RootPage.java | 2 +- .../resources/assets/lang/I18N.properties | 6 ++-- .../resources/assets/lang/I18N_es.properties | 6 ++-- .../resources/assets/lang/I18N_ja.properties | 15 ++++----- .../resources/assets/lang/I18N_ru.properties | 5 ++- .../resources/assets/lang/I18N_zh.properties | 5 ++- .../assets/lang/I18N_zh_CN.properties | 5 ++- 10 files changed, 63 insertions(+), 40 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java index 0c93cd582..88cb04bad 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Config.java @@ -172,6 +172,9 @@ public final class Config implements Cloneable, Observable { @SerializedName("promptedVersion") private StringProperty promptedVersion = new SimpleStringProperty(); + @SerializedName("hideAnnouncementVersion") + private StringProperty hideAnnouncementVersion = new SimpleStringProperty(); + @SerializedName("_version") private IntegerProperty configVersion = new SimpleIntegerProperty(0); @@ -639,4 +642,16 @@ public final class Config implements Cloneable, Observable { public void setPromptedVersion(String promptedVersion) { this.promptedVersion.set(promptedVersion); } + + public String getHideAnnouncementVersion() { + return hideAnnouncementVersion.get(); + } + + public StringProperty hideAnnouncementVersionProperty() { + return hideAnnouncementVersion; + } + + public void setHideAnnouncementVersion(String hideAnnouncementDevVersion) { + this.hideAnnouncementVersion.set(hideAnnouncementDevVersion); + } } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java index 467a9fb24..d4c4f9d24 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java @@ -323,9 +323,14 @@ public final class Controllers { public static void onHyperlinkAction(String href) { if (href.startsWith("hmcl://")) { - if ("hmcl://settings/feedback".equals(href)) { - Controllers.getSettingsPage().showFeedback(); - Controllers.navigate(Controllers.getSettingsPage()); + switch (href) { + case "hmcl://settings/feedback": + Controllers.getSettingsPage().showFeedback(); + Controllers.navigate(Controllers.getSettingsPage()); + break; + case "hmcl://hide-announcement": + Controllers.getRootPage().getMainPage().hideAnnouncementPane(); + break; } } else { FXUtils.openLink(href); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java index dc15b1d16..461d05c15 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/MainPage.java @@ -33,6 +33,7 @@ import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.scene.layout.VBox; import javafx.scene.shape.Rectangle; @@ -83,7 +84,7 @@ public final class MainPage extends StackPane implements DecoratorPage { private final ObservableList versionNodes; private Profile profile; - private final VBox announcementPane; + private VBox announcementPane; private final StackPane updatePane; private final JFXButton menuButton; @@ -112,7 +113,15 @@ public final class MainPage extends StackPane implements DecoratorPage { setPadding(new Insets(20)); - announcementPane = new VBox(16); + if (Metadata.isNightly() || (Metadata.isDev() && !Objects.equals(Metadata.VERSION, config().getHideAnnouncementVersion()))) { + announcementPane = new VBox(16); + if (Metadata.isNightly()) { + announcementPane.getChildren().add(new AnnouncementCard(i18n("update.channel.nightly.title"), i18n("update.channel.nightly.hint"))); + } else if (Metadata.isDev()) { + announcementPane.getChildren().add(new AnnouncementCard(i18n("update.channel.dev.title"), i18n("update.channel.dev.hint"))); + } + getChildren().add(announcementPane); + } updatePane = new StackPane(); updatePane.setVisible(false); @@ -221,7 +230,7 @@ public final class MainPage extends StackPane implements DecoratorPage { launchPane.getChildren().setAll(launchButton, separator, menuButton); } - getChildren().setAll(announcementPane, updatePane, launchPane); + getChildren().addAll(updatePane, launchPane); menu.setMaxHeight(365); menu.setMaxWidth(545); @@ -235,14 +244,6 @@ public final class MainPage extends StackPane implements DecoratorPage { Bindings.bindContent(menu.getContent(), versionNodes); } - public MainPage() { - if (Metadata.isNightly()) { - announcementPane.getChildren().add(new AnnouncementCard(i18n("update.channel.nightly.title"), i18n("update.channel.nightly.hint"))); - } else if (Metadata.isDev()) { - announcementPane.getChildren().add(new AnnouncementCard(i18n("update.channel.dev.title"), i18n("update.channel.dev.hint"))); - } - } - private void showUpdate(boolean show) { doAnimation(show); @@ -294,6 +295,16 @@ public final class MainPage extends StackPane implements DecoratorPage { showUpdate.set(false); } + public void hideAnnouncementPane() { + if (announcementPane != null) { + config().setHideAnnouncementVersion(Metadata.VERSION); + Pane parent = (Pane) announcementPane.getParent(); + if (parent != null) + parent.getChildren().remove(announcementPane); + announcementPane = null; + } + } + @Override public ReadOnlyObjectWrapper stateProperty() { return state; 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 0b3ab66db..65eb3fcf2 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 @@ -82,7 +82,7 @@ public class RootPage extends DecoratorAnimatedPage implements DecoratorPage { return new Skin(this); } - private MainPage getMainPage() { + public MainPage getMainPage() { if (mainPage == null) { MainPage mainPage = new MainPage(); FXUtils.applyDragListener(mainPage, ModpackHelper::isFileModpackByExtension, modpacks -> { diff --git a/HMCL/src/main/resources/assets/lang/I18N.properties b/HMCL/src/main/resources/assets/lang/I18N.properties index d807ad6e9..4affbfcde 100644 --- a/HMCL/src/main/resources/assets/lang/I18N.properties +++ b/HMCL/src/main/resources/assets/lang/I18N.properties @@ -1114,14 +1114,12 @@ update.channel.dev.hint=You are currently using a beta build of the launcher, wh \n\ If you encounter any bug or issue, you can go to the feedback page to report it, or tell us in our Discord or KOOK community.\n\ \n\ -To hide this tooltip, you need to make a donation or submit a valuable feedback. +Click here to hide this tooltip for the current version. update.channel.dev.title=Beta Version Notice update.channel.nightly=Nightly update.channel.nightly.hint=You are currently using a nightly build of the launcher, which may include some extra features, but is also always more unstable than the other versions.\n\ \n\ -If you encounter any bug or issue, you can go to the feedback page to report it, or tell us in our Discord or KOOK community.\n\ -\n\ -To hide this tooltip, you need to make a donation or submit a valuable feedback. +If you encounter any bug or issue, you can go to the feedback page to report it, or tell us in our Discord or KOOK community. update.channel.nightly.title=Nightly Version Notice update.channel.stable=Release update.checking=Checking for Updates diff --git a/HMCL/src/main/resources/assets/lang/I18N_es.properties b/HMCL/src/main/resources/assets/lang/I18N_es.properties index 1cce62f84..1c11f9ae7 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_es.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_es.properties @@ -1017,14 +1017,12 @@ update.channel.dev.hint=Actualmente está utilizando una versión beta del launc \n\ Si encuentra algún error o problema, puede ir a la página de comentarios para informar de ello, o bien para decírnoslo en nuestro Discord o en la comunidad KOOK.\n\ \n\ -Para ocultar esta información, es necesario hacer una donación o enviar un valioso comentario. +Haga clic aquí para ocultar el recordatorio para la versión de prueba actual. update.channel.dev.title=Aviso de versión beta update.channel.nightly=Nocturna update.channel.nightly.hint=Estás utilizando una versión nocturna del launcher, que puede incluir algunas características adicionales, pero también es siempre más inestable que las otras versiones.\n\ \n\ -Si encuentra algún error o problema, puede ir a la página de comentarios para informar de ello, o bien para decírnoslo en nuestro Discord o en la comunidad KOOK community.\n\ -\n\ -Para ocultar esta información sobre herramientas, es necesario hacer una donación o enviar un valioso comentario. +Si encuentra algún error o problema, puede ir a la página de comentarios para informar de ello, o bien para decírnoslo en nuestro Discord o en la comunidad KOOK community. update.channel.nightly.title=Aviso de versión nocturna update.channel.stable=Estable update.checking=Buscando actualizaciones diff --git a/HMCL/src/main/resources/assets/lang/I18N_ja.properties b/HMCL/src/main/resources/assets/lang/I18N_ja.properties index 69fcb5458..030afbacb 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_ja.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_ja.properties @@ -844,16 +844,15 @@ update=更新 update.accept=更新 update.changelog=変更 update.channel.dev=ベータ -update.channel.dev.hint=ベータ版を使用しています。ベータ版には、リリースバージョンと比較していくつかの追加機能が含まれている可能性があり、テストにのみ使用されます。\n \ - ベータ版は不安定なはずです!\n \ - 問題が発生した場合は、フィードバックページにアクセスして報告するか、チャット DiscordまたはKOOKで問題を報告します。\n \n \ - このヒントを非表示にするには、寄付するか、フィードバックに貢献をする必要があります。 +update.channel.dev.hint=ベータ版を使用しています。ベータ版には、リリースバージョンと比較していくつかの追加機能が含まれている可能性があり、テストにのみ使用されます。\n\ + ベータ版は不安定なはずです!\n\ + 問題が発生した場合は、フィードバックページにアクセスして報告するか、チャット DiscordまたはKOOKで問題を報告します。\n\n\ + 現在のテスト版のヒントを非表示にするには、ここをクリックしてください。 update.channel.dev.title=ベータ版のヒント update.channel.nightly=アルファ -update.channel.nightly.hint=アルファ版を使用しています。これには、ベータ版およびリリース版と比較していくつかの追加機能が含まれている可能性があり、テストにのみ使用されます。\n \ - アルファ版は不安定です!\n \ - 問題が発生した場合は、フィードバックページにアクセスして報告するか、チャット DiscordまたはKOOKで問題を報告します。\n \n \ - このヒントを非表示にするには、寄付するか、フィードバックに印象的な貢献をする必要があります。 +update.channel.nightly.hint=アルファ版を使用しています。これには、ベータ版およびリリース版と比較していくつかの追加機能が含まれている可能性があり、テストにのみ使用されます。\n\ + アルファ版は不安定です!\n\ + 問題が発生した場合は、フィードバックページにアクセスして報告するか、チャット DiscordまたはKOOKで問題を報告します。 update.channel.nightly.title=アルファ版のヒント update.channel.stable=リリース update.checking=更新の確認 diff --git a/HMCL/src/main/resources/assets/lang/I18N_ru.properties b/HMCL/src/main/resources/assets/lang/I18N_ru.properties index 504aab262..92091b5fb 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_ru.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_ru.properties @@ -853,13 +853,12 @@ update.channel.dev=Бета update.channel.dev.hint=Вы используете бета-версию, которая может включать некоторые дополнительные функции по сравнению с релизной версией, используемой только для тестирования.\n\ Бета-версия может быть нестабильной!\n\ Если вы встретили какие-то проблемы, вы можете зайти на страницу обратной связи, чтобы сообщить о них, или присоединиться к чату Discord или KOOK, чтобы сообщить о проблемах.\n\n\ - Чтобы скрыть эту подсказку, нужно пожертвовать или сделать внушительный вклад через обратную связь. + Нажмите здесь, чтобы скрыть подсказку для текущей тестовой версии. update.channel.dev.title=Подсказки для бета-версии update.channel.nightly=Альфа update.channel.nightly.hint=Вы используете альфа-версию, которая может включать некоторые дополнительные функциональные возможности по сравнению с бета-версией и версией релиза, используемой только для тестирования.\n\ Альфа-версия может быть нестабильной!\n\ - Если вы встретили какие-то проблемы, вы можете зайти на страницу обратной связи, чтобы сообщить о них, или присоединиться к чату Discord или KOOK, чтобы сообщить о проблемах.\n\n\ - Чтобы скрыть эту подсказку, нужно пожертвовать или сделать внушительный вклад через обратную связь. + Если вы встретили какие-то проблемы, вы можете зайти на страницу обратной связи, чтобы сообщить о них, или присоединиться к чату Discord или KOOK, чтобы сообщить о проблемах. update.channel.nightly.title=Подсказки для альфа-версии update.channel.stable=Релиз update.checking=Проверка наличия обновлений diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh.properties b/HMCL/src/main/resources/assets/lang/I18N_zh.properties index 4b9e64725..422f44cb1 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh.properties @@ -983,13 +983,12 @@ update.channel.dev=測試版 update.channel.dev.hint=你正在使用測試版。測試版包含一些未在正式版中包含的測試性功能,僅用於體驗新功能。\n\ 測試版功能未受充分驗證,使用起來可能不穩定!\n\ 如果你遇到了使用問題,可以在設置的 回饋頁面 中進行回饋,或加入回饋頁面中提供的 DiscordKOOK 群以回饋問題。\n\n\ - 你需要 贊助 或在回饋過程中作出貢獻以隱藏本提示。 + 點擊此處為當前版本隱藏該提示。 update.channel.dev.title=測試版提示 update.channel.nightly=預覽版 update.channel.nightly.hint=你正在使用預覽版。預覽版可能會每天更新一次,包含一些未在正式版和測試版中包含的測試性功能,僅用於體驗新功能\n\ 測試版功能未受充分驗證,使用起來可能不穩定!\n\ - 如果你遇到了使用問題,可以在設置的 回饋頁面 中進行回饋,或加入回饋頁面中提供的 DiscordKOOK 群以回饋問題。\n\n\ - 你需要 贊助 或在回饋過程中作出貢獻以隱藏本提示。 + 如果你遇到了使用問題,可以在設置的 回饋頁面 中進行回饋,或加入回饋頁面中提供的 DiscordKOOK 群以回饋問題。 update.channel.nightly.title=預覽版提示 update.channel.stable=建議版本 update.checking=正在檢查更新 diff --git a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties index cc520a763..f23c5abab 100644 --- a/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties +++ b/HMCL/src/main/resources/assets/lang/I18N_zh_CN.properties @@ -981,13 +981,12 @@ update.channel.dev=测试版 update.channel.dev.hint=你正在使用测试版。测试版包含一些未在正式版中包含的测试性功能,仅用于体验新功能。\n\ 测试版功能未受充分验证,使用起来可能不稳定!下载稳定版\n\ 如果你遇到了使用问题,可以在设置的 反馈页面 中进行反馈,或加入反馈页面中提供的 DiscordKOOK群以反馈问题。欢迎关注 B 站账号 huanghongxun 以关注 HMCL 的开发进展。\n\n\ - 你需要 赞助 或在反馈过程中作出贡献以隐藏本提示。 + 点击此处为当前版本隐藏该提示。 update.channel.dev.title=测试版提示 update.channel.nightly=预览版 update.channel.nightly.hint=你正在使用预览版。预览版可能会每天更新一次,包含一些未在正式版和测试版中包含的测试性功能,仅用于体验新功能。\n\ 测试版功能未受充分验证,使用起来可能不稳定!下载稳定版\n\ - 如果你遇到了使用问题,可以在设置的 反馈页面 中进行反馈,或加入反馈页面中提供的 DiscordKOOK群以反馈问题。欢迎关注 B 站账号 huanghongxun 以关注 HMCL 的开发进展。\n\n\ - 你需要 赞助 或在反馈过程中作出贡献以隐藏本提示。 + 如果你遇到了使用问题,可以在设置的 反馈页面 中进行反馈,或加入反馈页面中提供的 DiscordKOOK群以反馈问题。欢迎关注 B 站账号 huanghongxun 以关注 HMCL 的开发进展。 update.channel.nightly.title=预览版提示 update.channel.stable=推荐版本 update.checking=正在检查更新