From 84ea030e2af4a682afda96824d9e259cdaee2881 Mon Sep 17 00:00:00 2001 From: Vxrtrauter <101264710+Vxrtrauter@users.noreply.github.com> Date: Sat, 17 Jan 2026 14:46:07 +0100 Subject: [PATCH] Enhance asset handling: update icon loading to use dynamic path resolution --- .github/workflows/dev.yml | 4 ++++ core/interface/gui.py | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index e6110d2..ad6a626 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -105,6 +105,8 @@ jobs: --add-data "build_info.json;." \ --add-data "deps/aria2c.exe;." \ --add-data "core/interface/assets;core/interface/assets" \ + --add-data "core/interface/dialogs/assets;core/interface/dialogs/assets" \ + --icon "core/interface/assets/logo.png" \ --hidden-import=backports.tarfile \ --hidden-import=backports \ --hidden-import=jaraco.context \ @@ -120,6 +122,8 @@ jobs: pyinstaller --onefile --windowed \ --add-data "build_info.json:." \ --add-data "core/interface/assets:core/interface/assets" \ + --add-data "core/interface/dialogs/assets:core/interface/dialogs/assets" \ + --icon "core/interface/assets/logo.png" \ --hidden-import=backports.tarfile \ --hidden-import=backports \ --hidden-import=jaraco.context \ diff --git a/core/interface/gui.py b/core/interface/gui.py index c4b44a1..980fa8a 100644 --- a/core/interface/gui.py +++ b/core/interface/gui.py @@ -70,7 +70,23 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): super().__init__() MainWindow._instance = self self.log_signal.connect(self._on_log_signal) - self.setWindowIcon(QIcon(os.path.join('core/interface/assets/logo.png'))) + + def get_asset_path(filename): + + asset_paths = [ + os.path.join('core/interface/assets', filename), + os.path.join(os.path.dirname(__file__), '..', 'assets', filename), + os.path.join(os.path.dirname(sys.executable), 'core/interface/assets', filename), + ] + + for path in asset_paths: + if os.path.exists(path): + return path + + return asset_paths[0] + + self.setWindowIcon(QIcon(get_asset_path("logo.png"))) + if platform.system() == "Windows": try: @@ -248,9 +264,9 @@ class MainWindow(QtWidgets.QMainWindow, QWidget): self.tracker_list.activated.connect(self.set_tracker) if darkdetect.isDark(): - settings_action = QAction(QIcon("core/interface/assets/settings_white.png"), "Settings", self) + settings_action = QAction(QIcon(get_asset_path("settings_white.png")), "Settings", self) else: - settings_action = QAction(QIcon("core/interface/assets/settings_black.png"), "Settings", self) + settings_action = QAction(QIcon(get_asset_path("settings_black.png")), "Settings", self) settings_action.triggered.connect(lambda: settings_dialog(self)) toolbar.addAction(settings_action)