diff --git a/resources/icons/home.ico b/resources/icons/home.ico new file mode 100644 index 0000000..e080469 Binary files /dev/null and b/resources/icons/home.ico differ diff --git a/resources/icons/open.ico b/resources/icons/open.ico new file mode 100644 index 0000000..1b6fed8 Binary files /dev/null and b/resources/icons/open.ico differ diff --git a/resources/icons/openwith.ico b/resources/icons/openwith.ico new file mode 100644 index 0000000..3facabc Binary files /dev/null and b/resources/icons/openwith.ico differ diff --git a/resources/icons/reload.ico b/resources/icons/reload.ico new file mode 100644 index 0000000..1f1023d Binary files /dev/null and b/resources/icons/reload.ico differ diff --git a/src/webdrop_bridge/ui/main_window.py b/src/webdrop_bridge/ui/main_window.py index c6db37e..7e7336c 100644 --- a/src/webdrop_bridge/ui/main_window.py +++ b/src/webdrop_bridge/ui/main_window.py @@ -250,6 +250,12 @@ class OpenDropZone(QWidget): self.setMinimumSize(QSize(44, 44)) self.setMaximumSize(QSize(48, 48)) + def set_icon(self, icon: QIcon) -> None: + """Set the displayed icon for the drop zone widget.""" + if icon.isNull(): + return + self._icon_label.setPixmap(icon.pixmap(QSize(32, 32))) + # ------------------------------------------------------------------ # Drop handling # ------------------------------------------------------------------ @@ -1263,19 +1269,34 @@ class MainWindow(QMainWindow): # Separator toolbar.addSeparator() + if hasattr(sys, "_MEIPASS"): + icons_dir = Path(sys._MEIPASS) / "resources" / "icons" # type: ignore[attr-defined] + else: + icons_dir = Path(__file__).parent.parent.parent.parent / "resources" / "icons" + # Home button - home_action = toolbar.addAction( - self.style().standardIcon(self.style().StandardPixmap.SP_DirHomeIcon), "" + home_icon_path = icons_dir / "home.ico" + home_icon = ( + QIcon(str(home_icon_path)) + if home_icon_path.exists() + else self.style().standardIcon(self.style().StandardPixmap.SP_DirHomeIcon) ) + home_action = toolbar.addAction(home_icon, "") home_action.setToolTip("Home") home_action.triggered.connect(self._navigate_home) # Refresh button refresh_action = self.web_view.pageAction(self.web_view.page().WebAction.Reload) + reload_icon_path = icons_dir / "reload.ico" + if reload_icon_path.exists(): + refresh_action.setIcon(QIcon(str(reload_icon_path))) toolbar.addAction(refresh_action) # Open-with-default-app drop zone (right of Reload) self._open_drop_zone = OpenDropZone() + open_icon_path = icons_dir / "open.ico" + if open_icon_path.exists(): + self._open_drop_zone.set_icon(QIcon(str(open_icon_path))) self._open_drop_zone.file_opened.connect(self._on_file_opened_via_drop) self._open_drop_zone.file_open_failed.connect(self._on_file_open_failed_via_drop) open_drop_action = QWidgetAction(toolbar)