Skip to content

Commit a072fb7

Browse files
authored
改进任务栏图标质量 (#2864)
* 改进任务栏图标质量 * update
1 parent 08a3850 commit a072fb7

File tree

7 files changed

+18
-12
lines changed

7 files changed

+18
-12
lines changed

HMCL/src/main/java/org/jackhuang/hmcl/ui/Controllers.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
import java.util.concurrent.CompletableFuture;
6262

6363
import static org.jackhuang.hmcl.setting.ConfigHolder.*;
64-
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
6564
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
6665

6766
public final class Controllers {
@@ -262,7 +261,7 @@ public static void initialize(Stage stage) {
262261
decorator.getDecorator().prefHeightProperty().bind(scene.heightProperty());
263262
scene.getStylesheets().setAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
264263

265-
stage.getIcons().add(newBuiltinImage("/assets/img/icon.png"));
264+
FXUtils.setIcon(stage);
266265
stage.setTitle(Metadata.FULL_TITLE);
267266
stage.initStyle(StageStyle.TRANSPARENT);
268267
stage.setScene(scene);

HMCL/src/main/java/org/jackhuang/hmcl/ui/CrashWindow.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.jackhuang.hmcl.countly.CrashReport;
3131
import org.jackhuang.hmcl.upgrade.UpdateChecker;
3232

33-
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
3433
import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
3534

3635
/**
@@ -70,7 +69,7 @@ else if (UpdateChecker.isOutdated())
7069

7170
Scene scene = new Scene(pane, 800, 480);
7271
setScene(scene);
73-
getIcons().add(newBuiltinImage("/assets/img/icon.png"));
72+
FXUtils.setIcon(this);
7473
setTitle(i18n("message.error"));
7574

7675
setOnCloseRequest(e -> System.exit(1));

HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import javafx.scene.shape.Rectangle;
4444
import javafx.scene.text.Text;
4545
import javafx.scene.text.TextFlow;
46+
import javafx.stage.Stage;
4647
import javafx.util.Callback;
4748
import javafx.util.Duration;
4849
import javafx.util.StringConverter;
@@ -676,6 +677,16 @@ public static void unbindEnum(JFXComboBox<? extends Enum<?>> comboBox) {
676677
comboBox.getSelectionModel().selectedIndexProperty().removeListener(listener);
677678
}
678679

680+
public static void setIcon(Stage stage) {
681+
String icon;
682+
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
683+
icon = "/assets/img/icon.png";
684+
} else {
685+
icon = "/assets/img/icon@4x.png";
686+
}
687+
stage.getIcons().add(newBuiltinImage(icon));
688+
}
689+
679690
/**
680691
* Suppress IllegalArgumentException since the url is supposed to be correct definitely.
681692
*
@@ -769,8 +780,8 @@ public static Image newRemoteImage(String url, double requestedWidth, double req
769780
Task.runAsync(() -> {
770781
Path newPath = Files.createTempFile("hmcl-net-resource-cache-", ".cache");
771782
try ( // Make sure the file is released from JVM before we put the path into remoteImageCache.
772-
OutputStream outputStream = Files.newOutputStream(newPath);
773-
PNGWriter writer = new PNGWriter(outputStream, PNGType.RGBA, PNGWriter.DEFAULT_COMPRESS_LEVEL)
783+
OutputStream outputStream = Files.newOutputStream(newPath);
784+
PNGWriter writer = new PNGWriter(outputStream, PNGType.RGBA, PNGWriter.DEFAULT_COMPRESS_LEVEL)
774785
) {
775786
writer.write(PNGJavaFXUtils.asArgbImage(image));
776787
} catch (IOException e) {

HMCL/src/main/java/org/jackhuang/hmcl/ui/GameCrashWindow.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
import java.util.stream.Collectors;
6767

6868
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
69-
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
7069
import static org.jackhuang.hmcl.ui.FXUtils.runInFX;
7170
import static org.jackhuang.hmcl.util.Logging.LOG;
7271
import static org.jackhuang.hmcl.util.Pair.pair;
@@ -116,7 +115,7 @@ public GameCrashWindow(ManagedProcess managedProcess, ProcessListener.ExitType e
116115
setScene(new Scene(view, 800, 480));
117116
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
118117
setTitle(i18n("game.crash.title"));
119-
getIcons().add(newBuiltinImage("/assets/img/icon.png"));
118+
FXUtils.setIcon(this);
120119

121120
analyzeCrashReport();
122121
}

HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import java.util.stream.IntStream;
6161

6262
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
63-
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
6463
import static org.jackhuang.hmcl.util.Lang.thread;
6564
import static org.jackhuang.hmcl.util.Logging.LOG;
6665
import static org.jackhuang.hmcl.util.StringUtils.parseEscapeSequence;
@@ -98,7 +97,7 @@ public LogWindow(ManagedProcess gameProcess) {
9897
setScene(new Scene(impl, 800, 480));
9998
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
10099
setTitle(i18n("logwindow.title"));
101-
getIcons().add(newBuiltinImage("/assets/img/icon.png"));
100+
FXUtils.setIcon(this);
102101

103102
levelShownMap.values().forEach(property -> property.addListener((a, b, newValue) -> shakeLogs()));
104103

HMCL/src/main/java/org/jackhuang/hmcl/ui/WebStage.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.jackhuang.hmcl.setting.Theme;
3030

3131
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
32-
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
3332

3433
public class WebStage extends Stage {
3534
protected final StackPane pane = new StackPane();
@@ -44,7 +43,7 @@ public WebStage() {
4443
public WebStage(int width, int height) {
4544
setScene(new Scene(pane, width, height));
4645
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
47-
getIcons().add(newBuiltinImage("/assets/img/icon.png"));
46+
FXUtils.setIcon(this);
4847
webView.getEngine().setUserDataDirectory(Metadata.HMCL_DIRECTORY.toFile());
4948
webView.setContextMenuEnabled(false);
5049
progressBar.progressProperty().bind(webView.getEngine().getLoadWorker().progressProperty());
17.8 KB
Loading

0 commit comments

Comments
 (0)