update icons on theme change

This commit is contained in:
dries.k
2022-11-03 18:21:41 +01:00
parent 79370bc232
commit eea1c874cc
2 changed files with 17 additions and 4 deletions

View File

@@ -32,7 +32,7 @@ from .models import (
MessagesModelItem, MessagesModelItem,
MessageItemDataRole, MessageItemDataRole,
) )
from .widgets import ImagePopup, MainWindow, SettingsDialog, Tray from .widgets import ImagePopup, MainWindow, MessageWidget, SettingsDialog, Tray
settings = Settings("gotify-tray") settings = Settings("gotify-tray")
@@ -340,11 +340,21 @@ class MainApplication(QtWidgets.QApplication):
Cache().clear() Cache().clear()
self.refresh_applications() 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): def settings_callback(self):
settings_dialog = SettingsDialog() settings_dialog = SettingsDialog()
settings_dialog.quit_requested.connect(self.quit) settings_dialog.quit_requested.connect(self.quit)
settings_dialog.theme_change_requested.connect( settings_dialog.theme_change_requested.connect(
lambda theme: set_theme(self, theme) self.theme_change_requested_callback
) )
accepted = settings_dialog.exec() accepted = settings_dialog.exec()

View File

@@ -61,8 +61,7 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form):
size_hint = self.message_item.sizeHint() size_hint = self.message_item.sizeHint()
self.message_item.setSizeHint(QtCore.QSize(size_hint.width(), self.height())) self.message_item.setSizeHint(QtCore.QSize(size_hint.width(), self.height()))
self.pb_delete.setIcon(QtGui.QIcon(get_theme_file("trashcan.svg"))) self.set_icons()
self.pb_delete.setIconSize(QtCore.QSize(24, 24))
self.link_callbacks() self.link_callbacks()
@@ -88,6 +87,10 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form):
self.label_date.setFont(font_date) self.label_date.setFont(font_date)
self.label_message.setFont(font_content) 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): def link_hovered_callback(self, link: str):
if not settings.value("ImagePopup/enabled", type=bool): if not settings.value("ImagePopup/enabled", type=bool):
return return