From 2d4b3bf1887b96b0d9ed0489b6bf0d9a1c356067 Mon Sep 17 00:00:00 2001 From: neveler <55753029+neveler@users.noreply.github.com> Date: Sat, 18 Oct 2025 21:24:12 +0800 Subject: [PATCH 1/3] Add tooltip to external link button Added tooltip to external link button for better usability. --- .../org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java | 1 + 1 file changed, 1 insertion(+) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java index 3687dfea7a4..2ebfcf9f8c7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java @@ -113,6 +113,7 @@ public JFXButton getExternalLinkButton() { externalLinkButton.getStyleClass().add("toggle-icon4"); externalLinkButton.setGraphic(SVG.OPEN_IN_NEW.createIcon(Theme.blackFill(), -1)); externalLinkButton.setOnAction(e -> FXUtils.openLink(externalLink.get())); + FXUtils.installFastTooltip(externalLinkButton, externalLink.get()); } return externalLinkButton; } From 45da62d02b95152c432c03aa5f507888829c45d3 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 22 Oct 2025 20:58:38 +0800 Subject: [PATCH 2/3] update --- .../hmcl/ui/construct/IconedTwoLineListItem.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java index 2ebfcf9f8c7..8e9c79ac134 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java @@ -11,6 +11,7 @@ import javafx.collections.ObservableList; import javafx.geometry.Pos; import javafx.scene.control.Label; +import javafx.scene.control.Tooltip; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.HBox; @@ -113,7 +114,17 @@ public JFXButton getExternalLinkButton() { externalLinkButton.getStyleClass().add("toggle-icon4"); externalLinkButton.setGraphic(SVG.OPEN_IN_NEW.createIcon(Theme.blackFill(), -1)); externalLinkButton.setOnAction(e -> FXUtils.openLink(externalLink.get())); - FXUtils.installFastTooltip(externalLinkButton, externalLink.get()); + + Tooltip tooltip = new Tooltip(); + FXUtils.onChangeAndOperate(externalLink, link -> { + if (StringUtils.isBlank(link)) { + tooltip.setText(""); + Tooltip.uninstall(externalLinkButton, tooltip); + } else { + tooltip.setText(link); + FXUtils.installFastTooltip(externalLinkButton, tooltip); + } + }); } return externalLinkButton; } From 8cdc9473c91f377d75f7d147451e4989d0253bd4 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 22 Oct 2025 21:50:43 +0800 Subject: [PATCH 3/3] update --- .../hmcl/ui/construct/IconedTwoLineListItem.java | 12 ------------ .../java/org/jackhuang/hmcl/ui/main/AboutPage.java | 7 +++++-- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java index 8e9c79ac134..3687dfea7a4 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/IconedTwoLineListItem.java @@ -11,7 +11,6 @@ import javafx.collections.ObservableList; import javafx.geometry.Pos; import javafx.scene.control.Label; -import javafx.scene.control.Tooltip; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.HBox; @@ -114,17 +113,6 @@ public JFXButton getExternalLinkButton() { externalLinkButton.getStyleClass().add("toggle-icon4"); externalLinkButton.setGraphic(SVG.OPEN_IN_NEW.createIcon(Theme.blackFill(), -1)); externalLinkButton.setOnAction(e -> FXUtils.openLink(externalLink.get())); - - Tooltip tooltip = new Tooltip(); - FXUtils.onChangeAndOperate(externalLink, link -> { - if (StringUtils.isBlank(link)) { - tooltip.setText(""); - Tooltip.uninstall(externalLinkButton, tooltip); - } else { - tooltip.setText(link); - FXUtils.installFastTooltip(externalLinkButton, tooltip); - } - }); } return externalLinkButton; } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/AboutPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/AboutPage.java index a655ae4d85a..153ad7a55df 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/AboutPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/AboutPage.java @@ -138,8 +138,11 @@ else if (obj.has("titleLocalized")) else if (obj.has("subtitleLocalized")) item.setSubtitle(i18n(obj.get("subtitleLocalized").getAsString())); - if (obj.has("externalLink")) - item.setExternalLink(obj.get("externalLink").getAsString()); + if (obj.has("externalLink")) { + String link = obj.get("externalLink").getAsString(); + item.setExternalLink(link); + FXUtils.installFastTooltip(item.getExternalLinkButton(), link); + } componentList.getContent().add(item); }