改进任务栏图标质量 (#2864)

* 改进任务栏图标质量

* update
This commit is contained in:
Glavo 2024-02-29 02:03:42 +08:00 committed by GitHub
parent 08a3850dcf
commit a072fb7bea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 18 additions and 12 deletions

View File

@ -61,7 +61,6 @@ import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import static org.jackhuang.hmcl.setting.ConfigHolder.*; import static org.jackhuang.hmcl.setting.ConfigHolder.*;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n; import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
public final class Controllers { public final class Controllers {
@ -262,7 +261,7 @@ public final class Controllers {
decorator.getDecorator().prefHeightProperty().bind(scene.heightProperty()); decorator.getDecorator().prefHeightProperty().bind(scene.heightProperty());
scene.getStylesheets().setAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily())); scene.getStylesheets().setAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
stage.getIcons().add(newBuiltinImage("/assets/img/icon.png")); FXUtils.setIcon(stage);
stage.setTitle(Metadata.FULL_TITLE); stage.setTitle(Metadata.FULL_TITLE);
stage.initStyle(StageStyle.TRANSPARENT); stage.initStyle(StageStyle.TRANSPARENT);
stage.setScene(scene); stage.setScene(scene);

View File

@ -30,7 +30,6 @@ import org.jackhuang.hmcl.Metadata;
import org.jackhuang.hmcl.countly.CrashReport; import org.jackhuang.hmcl.countly.CrashReport;
import org.jackhuang.hmcl.upgrade.UpdateChecker; import org.jackhuang.hmcl.upgrade.UpdateChecker;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
import static org.jackhuang.hmcl.util.i18n.I18n.i18n; import static org.jackhuang.hmcl.util.i18n.I18n.i18n;
/** /**
@ -70,7 +69,7 @@ public class CrashWindow extends Stage {
Scene scene = new Scene(pane, 800, 480); Scene scene = new Scene(pane, 800, 480);
setScene(scene); setScene(scene);
getIcons().add(newBuiltinImage("/assets/img/icon.png")); FXUtils.setIcon(this);
setTitle(i18n("message.error")); setTitle(i18n("message.error"));
setOnCloseRequest(e -> System.exit(1)); setOnCloseRequest(e -> System.exit(1));

View File

@ -43,6 +43,7 @@ import javafx.scene.layout.StackPane;
import javafx.scene.shape.Rectangle; import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text; import javafx.scene.text.Text;
import javafx.scene.text.TextFlow; import javafx.scene.text.TextFlow;
import javafx.stage.Stage;
import javafx.util.Callback; import javafx.util.Callback;
import javafx.util.Duration; import javafx.util.Duration;
import javafx.util.StringConverter; import javafx.util.StringConverter;
@ -676,6 +677,16 @@ public final class FXUtils {
comboBox.getSelectionModel().selectedIndexProperty().removeListener(listener); comboBox.getSelectionModel().selectedIndexProperty().removeListener(listener);
} }
public static void setIcon(Stage stage) {
String icon;
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
icon = "/assets/img/icon.png";
} else {
icon = "/assets/img/icon@4x.png";
}
stage.getIcons().add(newBuiltinImage(icon));
}
/** /**
* Suppress IllegalArgumentException since the url is supposed to be correct definitely. * Suppress IllegalArgumentException since the url is supposed to be correct definitely.
* *

View File

@ -66,7 +66,6 @@ import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.jackhuang.hmcl.setting.ConfigHolder.config; import static org.jackhuang.hmcl.setting.ConfigHolder.config;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
import static org.jackhuang.hmcl.ui.FXUtils.runInFX; import static org.jackhuang.hmcl.ui.FXUtils.runInFX;
import static org.jackhuang.hmcl.util.Logging.LOG; import static org.jackhuang.hmcl.util.Logging.LOG;
import static org.jackhuang.hmcl.util.Pair.pair; import static org.jackhuang.hmcl.util.Pair.pair;
@ -116,7 +115,7 @@ public class GameCrashWindow extends Stage {
setScene(new Scene(view, 800, 480)); setScene(new Scene(view, 800, 480));
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily())); getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
setTitle(i18n("game.crash.title")); setTitle(i18n("game.crash.title"));
getIcons().add(newBuiltinImage("/assets/img/icon.png")); FXUtils.setIcon(this);
analyzeCrashReport(); analyzeCrashReport();
} }

View File

@ -60,7 +60,6 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import static org.jackhuang.hmcl.setting.ConfigHolder.config; import static org.jackhuang.hmcl.setting.ConfigHolder.config;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
import static org.jackhuang.hmcl.util.Lang.thread; import static org.jackhuang.hmcl.util.Lang.thread;
import static org.jackhuang.hmcl.util.Logging.LOG; import static org.jackhuang.hmcl.util.Logging.LOG;
import static org.jackhuang.hmcl.util.StringUtils.parseEscapeSequence; import static org.jackhuang.hmcl.util.StringUtils.parseEscapeSequence;
@ -98,7 +97,7 @@ public final class LogWindow extends Stage {
setScene(new Scene(impl, 800, 480)); setScene(new Scene(impl, 800, 480));
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily())); getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
setTitle(i18n("logwindow.title")); setTitle(i18n("logwindow.title"));
getIcons().add(newBuiltinImage("/assets/img/icon.png")); FXUtils.setIcon(this);
levelShownMap.values().forEach(property -> property.addListener((a, b, newValue) -> shakeLogs())); levelShownMap.values().forEach(property -> property.addListener((a, b, newValue) -> shakeLogs()));

View File

@ -29,7 +29,6 @@ import org.jackhuang.hmcl.Metadata;
import org.jackhuang.hmcl.setting.Theme; import org.jackhuang.hmcl.setting.Theme;
import static org.jackhuang.hmcl.setting.ConfigHolder.config; import static org.jackhuang.hmcl.setting.ConfigHolder.config;
import static org.jackhuang.hmcl.ui.FXUtils.newBuiltinImage;
public class WebStage extends Stage { public class WebStage extends Stage {
protected final StackPane pane = new StackPane(); protected final StackPane pane = new StackPane();
@ -44,7 +43,7 @@ public class WebStage extends Stage {
public WebStage(int width, int height) { public WebStage(int width, int height) {
setScene(new Scene(pane, width, height)); setScene(new Scene(pane, width, height));
getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily())); getScene().getStylesheets().addAll(Theme.getTheme().getStylesheets(config().getLauncherFontFamily()));
getIcons().add(newBuiltinImage("/assets/img/icon.png")); FXUtils.setIcon(this);
webView.getEngine().setUserDataDirectory(Metadata.HMCL_DIRECTORY.toFile()); webView.getEngine().setUserDataDirectory(Metadata.HMCL_DIRECTORY.toFile());
webView.setContextMenuEnabled(false); webView.setContextMenuEnabled(false);
progressBar.progressProperty().bind(webView.getEngine().getLoadWorker().progressProperty()); progressBar.progressProperty().bind(webView.getEngine().getLoadWorker().progressProperty());

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB