From eea1c874ccaef1b9a88bd73502bc24dba31fa900 Mon Sep 17 00:00:00 2001 From: "dries.k" Date: Thu, 3 Nov 2022 18:21:41 +0100 Subject: [PATCH] update icons on theme change --- gotify_tray/gui/MainApplication.py | 14 ++++++++++++-- gotify_tray/gui/widgets/MessageWidget.py | 7 +++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gotify_tray/gui/MainApplication.py b/gotify_tray/gui/MainApplication.py index a710211..2bf59af 100644 --- a/gotify_tray/gui/MainApplication.py +++ b/gotify_tray/gui/MainApplication.py @@ -32,7 +32,7 @@ from .models import ( MessagesModelItem, MessageItemDataRole, ) -from .widgets import ImagePopup, MainWindow, SettingsDialog, Tray +from .widgets import ImagePopup, MainWindow, MessageWidget, SettingsDialog, Tray settings = Settings("gotify-tray") @@ -340,11 +340,21 @@ class MainApplication(QtWidgets.QApplication): Cache().clear() self.refresh_applications() + def theme_change_requested_callback(self, theme: str): + # Set the theme, update the main window and message widget icons + set_theme(self, theme) + self.main_window.set_icons() + for r in range(self.messages_model.rowCount()): + message_widget: MessageWidget = self.main_window.listView_messages.indexWidget( + self.messages_model.index(r, 0) + ) + message_widget.set_icons() + def settings_callback(self): settings_dialog = SettingsDialog() settings_dialog.quit_requested.connect(self.quit) settings_dialog.theme_change_requested.connect( - lambda theme: set_theme(self, theme) + self.theme_change_requested_callback ) accepted = settings_dialog.exec() diff --git a/gotify_tray/gui/widgets/MessageWidget.py b/gotify_tray/gui/widgets/MessageWidget.py index 8faa806..339963d 100644 --- a/gotify_tray/gui/widgets/MessageWidget.py +++ b/gotify_tray/gui/widgets/MessageWidget.py @@ -61,8 +61,7 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form): size_hint = self.message_item.sizeHint() self.message_item.setSizeHint(QtCore.QSize(size_hint.width(), self.height())) - self.pb_delete.setIcon(QtGui.QIcon(get_theme_file("trashcan.svg"))) - self.pb_delete.setIconSize(QtCore.QSize(24, 24)) + self.set_icons() self.link_callbacks() @@ -88,6 +87,10 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form): self.label_date.setFont(font_date) self.label_message.setFont(font_content) + def set_icons(self): + self.pb_delete.setIcon(QtGui.QIcon(get_theme_file("trashcan.svg"))) + self.pb_delete.setIconSize(QtCore.QSize(24, 24)) + def link_hovered_callback(self, link: str): if not settings.value("ImagePopup/enabled", type=bool): return