diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index c133631..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# To get started with Dependabot version updates, you'll need to specify which
-# package ecosystems to update and where the package manifests are located.
-# Please see the documentation for all configuration options:
-# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-updates:
- - package-ecosystem: "pip" # See documentation for possible values
- directory: "/" # Location of package manifests
- target-branch: "develop"
- schedule:
- interval: "weekly"
diff --git a/MANIFEST.in b/MANIFEST.in
index 5a85169..9633652 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,9 +1,8 @@
include README.md version.txt
include gotify_tray/gui/images/*.png
include gotify_tray/gui/images/*.svg
-include gotify_tray/gui/themes/default/*.svg
-include gotify_tray/gui/themes/default/*.qss
-include gotify_tray/gui/themes/dark_purple/*.svg
-include gotify_tray/gui/themes/dark_purple/*.qss
-include gotify_tray/gui/themes/light_purple/*.svg
-include gotify_tray/gui/themes/light_purple/*.qss
+include gotify_tray/gui/themes/base.qss
+include gotify_tray/gui/themes/dark/*.svg
+include gotify_tray/gui/themes/dark/*.qss
+include gotify_tray/gui/themes/light/*.svg
+include gotify_tray/gui/themes/light/*.qss
diff --git a/gotify_tray/database/default_settings.py b/gotify_tray/database/default_settings.py
index 6d671a8..b488416 100644
--- a/gotify_tray/database/default_settings.py
+++ b/gotify_tray/database/default_settings.py
@@ -5,7 +5,6 @@ from ..__version__ import __title__
DEFAULT_SETTINGS = {
- "theme": "automatic",
"message/check_missed/notify": True,
"locale": False,
"logging/level": "Disabled",
diff --git a/gotify_tray/gui/MainApplication.py b/gotify_tray/gui/MainApplication.py
index b74076a..1bf5308 100644
--- a/gotify_tray/gui/MainApplication.py
+++ b/gotify_tray/gui/MainApplication.py
@@ -60,8 +60,6 @@ def init_logger(logger: logging.Logger):
class MainApplication(QtWidgets.QApplication):
def init_ui(self):
- set_theme(self, settings.value("theme", type=str))
-
self.gotify_client = gotify.GotifyClient(
settings.value("Server/url", type=str),
settings.value("Server/client_token", type=str),
@@ -97,6 +95,9 @@ class MainApplication(QtWidgets.QApplication):
self.watchdog.start()
+ def set_theme(self):
+ set_theme(self)
+
def refresh_applications(self):
self.messages_model.clear()
self.application_model.clear()
@@ -299,9 +300,9 @@ class MainApplication(QtWidgets.QApplication):
if image_popup := getattr(self, "image_popup", None):
image_popup.close()
- def theme_change_requested_callback(self, theme: str):
+ def theme_change_requested_callback(self, *args):
# Set the theme
- set_theme(self, theme)
+ self.set_theme()
# Update the main window icons
self.main_window.set_icons()
@@ -314,7 +315,6 @@ class MainApplication(QtWidgets.QApplication):
def settings_callback(self):
settings_dialog = SettingsDialog()
settings_dialog.quit_requested.connect(self.quit)
- settings_dialog.theme_change_requested.connect(self.theme_change_requested_callback)
accepted = settings_dialog.exec()
if accepted and settings_dialog.settings_changed:
@@ -363,7 +363,7 @@ class MainApplication(QtWidgets.QApplication):
self.main_window.hidden.connect(self.main_window_hidden_callback)
self.main_window.activated.connect(self.tray.revert_icon)
- self.styleHints().colorSchemeChanged.connect(lambda _: self.theme_change_requested_callback(settings.value("theme", type=str)))
+ self.styleHints().colorSchemeChanged.connect(self.theme_change_requested_callback)
self.messages_model.rowsInserted.connect(self.main_window.display_message_widgets)
@@ -401,6 +401,7 @@ def start_gui():
app.setQuitOnLastWindowClosed(False)
app.setWindowIcon(QtGui.QIcon(get_icon("gotify-small")))
app.setStyle("fusion")
+ app.set_theme()
init_logger(logger)
diff --git a/gotify_tray/gui/designs/widget_main.py b/gotify_tray/gui/designs/widget_main.py
index 06b5ace..a98c01b 100644
--- a/gotify_tray/gui/designs/widget_main.py
+++ b/gotify_tray/gui/designs/widget_main.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'gotify_tray/gui/designs\widget_main.ui'
#
-# Created by: PyQt6 UI code generator 6.1.0
+# Created by: PyQt6 UI code generator 6.5.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
@@ -13,18 +13,18 @@ class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(809, 647)
- self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setContentsMargins(4, 4, 4, 4)
self.gridLayout.setObjectName("gridLayout")
- self.splitter = QtWidgets.QSplitter(self.centralwidget)
+ self.splitter = QtWidgets.QSplitter(parent=self.centralwidget)
self.splitter.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.splitter.setObjectName("splitter")
- self.listView_applications = QtWidgets.QListView(self.splitter)
+ self.listView_applications = QtWidgets.QListView(parent=self.splitter)
self.listView_applications.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.listView_applications.setObjectName("listView_applications")
- self.verticalLayoutWidget = QtWidgets.QWidget(self.splitter)
+ self.verticalLayoutWidget = QtWidgets.QWidget(parent=self.splitter)
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
@@ -33,21 +33,21 @@ class Ui_MainWindow(object):
self.horizontalLayout.setObjectName("horizontalLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(spacerItem)
- self.label_application = QtWidgets.QLabel(self.verticalLayoutWidget)
+ self.label_application = QtWidgets.QLabel(parent=self.verticalLayoutWidget)
self.label_application.setObjectName("label_application")
self.horizontalLayout.addWidget(self.label_application)
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.horizontalLayout.addItem(spacerItem1)
- self.pb_refresh = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.pb_refresh = QtWidgets.QPushButton(parent=self.verticalLayoutWidget)
self.pb_refresh.setText("")
self.pb_refresh.setObjectName("pb_refresh")
self.horizontalLayout.addWidget(self.pb_refresh)
- self.pb_delete_all = QtWidgets.QPushButton(self.verticalLayoutWidget)
+ self.pb_delete_all = QtWidgets.QPushButton(parent=self.verticalLayoutWidget)
self.pb_delete_all.setText("")
self.pb_delete_all.setObjectName("pb_delete_all")
self.horizontalLayout.addWidget(self.pb_delete_all)
self.verticalLayout_2.addLayout(self.horizontalLayout)
- self.listView_messages = QtWidgets.QListView(self.verticalLayoutWidget)
+ self.listView_messages = QtWidgets.QListView(parent=self.verticalLayoutWidget)
self.listView_messages.setAutoScroll(True)
self.listView_messages.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.listView_messages.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollMode.ScrollPerPixel)
diff --git a/gotify_tray/gui/designs/widget_message.py b/gotify_tray/gui/designs/widget_message.py
index 4509bd8..4477054 100644
--- a/gotify_tray/gui/designs/widget_message.py
+++ b/gotify_tray/gui/designs/widget_message.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'gotify_tray/gui/designs\widget_message.ui'
#
-# Created by: PyQt6 UI code generator 6.4.0
+# Created by: PyQt6 UI code generator 6.5.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
@@ -18,7 +18,7 @@ class Ui_Form(object):
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setHorizontalSpacing(0)
self.gridLayout.setObjectName("gridLayout")
- self.frame = QtWidgets.QFrame(Form)
+ self.frame = QtWidgets.QFrame(parent=Form)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
@@ -27,7 +27,7 @@ class Ui_Form(object):
self.gridLayout_frame.setContentsMargins(0, 0, -1, 0)
self.gridLayout_frame.setVerticalSpacing(3)
self.gridLayout_frame.setObjectName("gridLayout_frame")
- self.label_message = QtWidgets.QLabel(self.frame)
+ self.label_message = QtWidgets.QLabel(parent=self.frame)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.MinimumExpanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -41,7 +41,7 @@ class Ui_Form(object):
self.label_message.setTextInteractionFlags(QtCore.Qt.TextInteractionFlag.LinksAccessibleByMouse|QtCore.Qt.TextInteractionFlag.TextSelectableByMouse)
self.label_message.setObjectName("label_message")
self.gridLayout_frame.addWidget(self.label_message, 4, 3, 1, 4)
- self.pb_delete = QtWidgets.QPushButton(self.frame)
+ self.pb_delete = QtWidgets.QPushButton(parent=self.frame)
self.pb_delete.setText("")
self.pb_delete.setFlat(True)
self.pb_delete.setObjectName("pb_delete")
@@ -50,14 +50,14 @@ class Ui_Form(object):
self.gridLayout_frame.addItem(spacerItem, 1, 4, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(0, 2, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Fixed)
self.gridLayout_frame.addItem(spacerItem1, 0, 3, 1, 4)
- self.label_date = QtWidgets.QLabel(self.frame)
+ self.label_date = QtWidgets.QLabel(parent=self.frame)
font = QtGui.QFont()
font.setPointSize(11)
self.label_date.setFont(font)
self.label_date.setTextInteractionFlags(QtCore.Qt.TextInteractionFlag.LinksAccessibleByMouse|QtCore.Qt.TextInteractionFlag.TextSelectableByMouse)
self.label_date.setObjectName("label_date")
self.gridLayout_frame.addWidget(self.label_date, 1, 5, 1, 1)
- self.label_title = QtWidgets.QLabel(self.frame)
+ self.label_title = QtWidgets.QLabel(parent=self.frame)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
@@ -72,11 +72,11 @@ class Ui_Form(object):
self.label_title.setTextInteractionFlags(QtCore.Qt.TextInteractionFlag.LinksAccessibleByMouse|QtCore.Qt.TextInteractionFlag.TextSelectableByMouse)
self.label_title.setObjectName("label_title")
self.gridLayout_frame.addWidget(self.label_title, 1, 3, 1, 1)
- self.label_image = QtWidgets.QLabel(self.frame)
+ self.label_image = QtWidgets.QLabel(parent=self.frame)
self.label_image.setText("")
self.label_image.setObjectName("label_image")
self.gridLayout_frame.addWidget(self.label_image, 1, 2, 1, 1)
- self.label_priority = QtWidgets.QLabel(self.frame)
+ self.label_priority = QtWidgets.QLabel(parent=self.frame)
self.label_priority.setMaximumSize(QtCore.QSize(6, 16777215))
self.label_priority.setText("")
self.label_priority.setObjectName("label_priority")
diff --git a/gotify_tray/gui/designs/widget_server.py b/gotify_tray/gui/designs/widget_server.py
index d58e3b7..70efc8b 100644
--- a/gotify_tray/gui/designs/widget_server.py
+++ b/gotify_tray/gui/designs/widget_server.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'gotify_tray/gui/designs\widget_server.ui'
#
-# Created by: PyQt6 UI code generator 6.1.0
+# Created by: PyQt6 UI code generator 6.5.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
@@ -15,36 +15,36 @@ class Ui_Dialog(object):
Dialog.resize(300, 130)
self.gridLayout = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
- self.label_server_info = QtWidgets.QLabel(Dialog)
+ self.label_server_info = QtWidgets.QLabel(parent=Dialog)
self.label_server_info.setText("")
self.label_server_info.setObjectName("label_server_info")
self.gridLayout.addWidget(self.label_server_info, 1, 1, 1, 2)
self.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
- self.label = QtWidgets.QLabel(Dialog)
+ self.label = QtWidgets.QLabel(parent=Dialog)
self.label.setObjectName("label")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label)
- self.line_url = QtWidgets.QLineEdit(Dialog)
+ self.line_url = QtWidgets.QLineEdit(parent=Dialog)
self.line_url.setObjectName("line_url")
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.line_url)
- self.label_2 = QtWidgets.QLabel(Dialog)
+ self.label_2 = QtWidgets.QLabel(parent=Dialog)
self.label_2.setObjectName("label_2")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_2)
- self.line_token = QtWidgets.QLineEdit(Dialog)
+ self.line_token = QtWidgets.QLineEdit(parent=Dialog)
self.line_token.setObjectName("line_token")
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.line_token)
self.gridLayout.addLayout(self.formLayout, 0, 1, 1, 5)
- self.pb_test = QtWidgets.QPushButton(Dialog)
+ self.pb_test = QtWidgets.QPushButton(parent=Dialog)
self.pb_test.setObjectName("pb_test")
self.gridLayout.addWidget(self.pb_test, 1, 5, 1, 1)
- self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
+ self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.gridLayout.addWidget(self.buttonBox, 2, 5, 1, 1)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 3, 1, 1)
- self.pb_import = QtWidgets.QPushButton(Dialog)
+ self.pb_import = QtWidgets.QPushButton(parent=Dialog)
self.pb_import.setMaximumSize(QtCore.QSize(30, 16777215))
self.pb_import.setObjectName("pb_import")
self.gridLayout.addWidget(self.pb_import, 1, 4, 1, 1)
diff --git a/gotify_tray/gui/designs/widget_settings.py b/gotify_tray/gui/designs/widget_settings.py
index 12d1208..5dffb29 100644
--- a/gotify_tray/gui/designs/widget_settings.py
+++ b/gotify_tray/gui/designs/widget_settings.py
@@ -1,6 +1,6 @@
# Form implementation generated from reading ui file 'gotify_tray/gui/designs\widget_settings.ui'
#
-# Created by: PyQt6 UI code generator 6.4.0
+# Created by: PyQt6 UI code generator 6.5.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.
@@ -12,91 +12,80 @@ from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
- Dialog.resize(415, 450)
+ Dialog.resize(415, 420)
self.gridLayout = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
- self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
+ self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Apply|QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 1)
- self.tabWidget = QtWidgets.QTabWidget(Dialog)
+ self.tabWidget = QtWidgets.QTabWidget(parent=Dialog)
self.tabWidget.setObjectName("tabWidget")
self.tab_general = QtWidgets.QWidget()
self.tab_general.setObjectName("tab_general")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.tab_general)
self.verticalLayout_4.setObjectName("verticalLayout_4")
- self.groupBox_notifications = QtWidgets.QGroupBox(self.tab_general)
+ self.groupBox_notifications = QtWidgets.QGroupBox(parent=self.tab_general)
self.groupBox_notifications.setObjectName("groupBox_notifications")
self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_notifications)
self.gridLayout_4.setObjectName("gridLayout_4")
- self.label_notification_duration = QtWidgets.QLabel(self.groupBox_notifications)
+ self.label_notification_duration = QtWidgets.QLabel(parent=self.groupBox_notifications)
self.label_notification_duration.setObjectName("label_notification_duration")
self.gridLayout_4.addWidget(self.label_notification_duration, 1, 0, 1, 1)
- self.spin_duration = QtWidgets.QSpinBox(self.groupBox_notifications)
+ self.spin_duration = QtWidgets.QSpinBox(parent=self.groupBox_notifications)
self.spin_duration.setMinimum(500)
self.spin_duration.setMaximum(30000)
self.spin_duration.setSingleStep(100)
self.spin_duration.setObjectName("spin_duration")
self.gridLayout_4.addWidget(self.spin_duration, 1, 1, 1, 1)
- self.cb_notification_click = QtWidgets.QCheckBox(self.groupBox_notifications)
+ self.cb_notification_click = QtWidgets.QCheckBox(parent=self.groupBox_notifications)
self.cb_notification_click.setObjectName("cb_notification_click")
self.gridLayout_4.addWidget(self.cb_notification_click, 3, 0, 1, 3)
- self.label_notification_duration_ms = QtWidgets.QLabel(self.groupBox_notifications)
+ self.label_notification_duration_ms = QtWidgets.QLabel(parent=self.groupBox_notifications)
self.label_notification_duration_ms.setObjectName("label_notification_duration_ms")
self.gridLayout_4.addWidget(self.label_notification_duration_ms, 1, 2, 1, 1)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout_4.addItem(spacerItem, 0, 2, 1, 1)
- self.cb_notify = QtWidgets.QCheckBox(self.groupBox_notifications)
+ self.cb_notify = QtWidgets.QCheckBox(parent=self.groupBox_notifications)
self.cb_notify.setObjectName("cb_notify")
self.gridLayout_4.addWidget(self.cb_notify, 2, 0, 1, 3)
- self.spin_priority = QtWidgets.QSpinBox(self.groupBox_notifications)
+ self.spin_priority = QtWidgets.QSpinBox(parent=self.groupBox_notifications)
self.spin_priority.setMinimum(1)
self.spin_priority.setMaximum(10)
self.spin_priority.setProperty("value", 5)
self.spin_priority.setObjectName("spin_priority")
self.gridLayout_4.addWidget(self.spin_priority, 0, 1, 1, 1)
- self.label_notification_priority = QtWidgets.QLabel(self.groupBox_notifications)
+ self.label_notification_priority = QtWidgets.QLabel(parent=self.groupBox_notifications)
self.label_notification_priority.setObjectName("label_notification_priority")
self.gridLayout_4.addWidget(self.label_notification_priority, 0, 0, 1, 1)
- self.cb_tray_icon_unread = QtWidgets.QCheckBox(self.groupBox_notifications)
+ self.cb_tray_icon_unread = QtWidgets.QCheckBox(parent=self.groupBox_notifications)
self.cb_tray_icon_unread.setObjectName("cb_tray_icon_unread")
self.gridLayout_4.addWidget(self.cb_tray_icon_unread, 4, 0, 1, 3)
self.verticalLayout_4.addWidget(self.groupBox_notifications)
- self.groupBox_2 = QtWidgets.QGroupBox(self.tab_general)
+ self.groupBox_2 = QtWidgets.QGroupBox(parent=self.tab_general)
self.groupBox_2.setObjectName("groupBox_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.groupBox_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
- self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
- self.horizontalLayout_3.setObjectName("horizontalLayout_3")
- self.label_theme = QtWidgets.QLabel(self.groupBox_2)
- self.label_theme.setObjectName("label_theme")
- self.horizontalLayout_3.addWidget(self.label_theme)
- self.combo_theme = QtWidgets.QComboBox(self.groupBox_2)
- self.combo_theme.setObjectName("combo_theme")
- self.horizontalLayout_3.addWidget(self.combo_theme)
- spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.horizontalLayout_3.addItem(spacerItem1)
- self.verticalLayout_2.addLayout(self.horizontalLayout_3)
- self.cb_priority_colors = QtWidgets.QCheckBox(self.groupBox_2)
+ self.cb_priority_colors = QtWidgets.QCheckBox(parent=self.groupBox_2)
self.cb_priority_colors.setObjectName("cb_priority_colors")
self.verticalLayout_2.addWidget(self.cb_priority_colors)
- self.cb_locale = QtWidgets.QCheckBox(self.groupBox_2)
+ self.cb_locale = QtWidgets.QCheckBox(parent=self.groupBox_2)
self.cb_locale.setObjectName("cb_locale")
self.verticalLayout_2.addWidget(self.cb_locale)
self.verticalLayout_4.addWidget(self.groupBox_2)
- self.groupBox_server_info = QtWidgets.QGroupBox(self.tab_general)
+ self.groupBox_server_info = QtWidgets.QGroupBox(parent=self.tab_general)
self.groupBox_server_info.setObjectName("groupBox_server_info")
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_server_info)
self.gridLayout_3.setObjectName("gridLayout_3")
- self.pb_change_server_info = QtWidgets.QPushButton(self.groupBox_server_info)
+ self.pb_change_server_info = QtWidgets.QPushButton(parent=self.groupBox_server_info)
self.pb_change_server_info.setObjectName("pb_change_server_info")
self.gridLayout_3.addWidget(self.pb_change_server_info, 0, 0, 1, 1)
- spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.gridLayout_3.addItem(spacerItem2, 0, 1, 1, 1)
+ spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.gridLayout_3.addItem(spacerItem1, 0, 1, 1, 1)
self.verticalLayout_4.addWidget(self.groupBox_server_info)
- spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
- self.verticalLayout_4.addItem(spacerItem3)
+ spacerItem2 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout_4.addItem(spacerItem2)
self.tabWidget.addTab(self.tab_general, "")
self.tab_fonts = QtWidgets.QWidget()
self.tab_fonts.setObjectName("tab_fonts")
@@ -104,11 +93,11 @@ class Ui_Dialog(object):
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
- self.pb_reset_fonts = QtWidgets.QPushButton(self.tab_fonts)
+ self.pb_reset_fonts = QtWidgets.QPushButton(parent=self.tab_fonts)
self.pb_reset_fonts.setObjectName("pb_reset_fonts")
self.horizontalLayout_5.addWidget(self.pb_reset_fonts)
self.verticalLayout_5.addLayout(self.horizontalLayout_5)
- self.groupBox_fonts_message = QtWidgets.QGroupBox(self.tab_fonts)
+ self.groupBox_fonts_message = QtWidgets.QGroupBox(parent=self.tab_fonts)
self.groupBox_fonts_message.setObjectName("groupBox_fonts_message")
self.layout_fonts_message = QtWidgets.QVBoxLayout(self.groupBox_fonts_message)
self.layout_fonts_message.setContentsMargins(4, 4, 4, 4)
@@ -116,102 +105,102 @@ class Ui_Dialog(object):
self.layout_fonts_message.setObjectName("layout_fonts_message")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
- self.pb_font_message_title = QtWidgets.QPushButton(self.groupBox_fonts_message)
+ self.pb_font_message_title = QtWidgets.QPushButton(parent=self.groupBox_fonts_message)
self.pb_font_message_title.setObjectName("pb_font_message_title")
self.horizontalLayout.addWidget(self.pb_font_message_title)
- self.pb_font_message_date = QtWidgets.QPushButton(self.groupBox_fonts_message)
+ self.pb_font_message_date = QtWidgets.QPushButton(parent=self.groupBox_fonts_message)
self.pb_font_message_date.setObjectName("pb_font_message_date")
self.horizontalLayout.addWidget(self.pb_font_message_date)
- self.pb_font_message_content = QtWidgets.QPushButton(self.groupBox_fonts_message)
+ self.pb_font_message_content = QtWidgets.QPushButton(parent=self.groupBox_fonts_message)
self.pb_font_message_content.setObjectName("pb_font_message_content")
self.horizontalLayout.addWidget(self.pb_font_message_content)
self.layout_fonts_message.addLayout(self.horizontalLayout)
self.verticalLayout_5.addWidget(self.groupBox_fonts_message)
- spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
- self.verticalLayout_5.addItem(spacerItem4)
+ spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout_5.addItem(spacerItem3)
self.tabWidget.addTab(self.tab_fonts, "")
self.tab_advanced = QtWidgets.QWidget()
self.tab_advanced.setObjectName("tab_advanced")
self.verticalLayout = QtWidgets.QVBoxLayout(self.tab_advanced)
self.verticalLayout.setObjectName("verticalLayout")
- self.groupBox = QtWidgets.QGroupBox(self.tab_advanced)
+ self.groupBox = QtWidgets.QGroupBox(parent=self.tab_advanced)
self.groupBox.setObjectName("groupBox")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
- self.pb_reset = QtWidgets.QPushButton(self.groupBox)
+ self.pb_reset = QtWidgets.QPushButton(parent=self.groupBox)
self.pb_reset.setObjectName("pb_reset")
self.horizontalLayout_2.addWidget(self.pb_reset)
- self.pb_import = QtWidgets.QPushButton(self.groupBox)
+ self.pb_import = QtWidgets.QPushButton(parent=self.groupBox)
self.pb_import.setObjectName("pb_import")
self.horizontalLayout_2.addWidget(self.pb_import)
- self.pb_export = QtWidgets.QPushButton(self.groupBox)
+ self.pb_export = QtWidgets.QPushButton(parent=self.groupBox)
self.pb_export.setObjectName("pb_export")
self.horizontalLayout_2.addWidget(self.pb_export)
self.verticalLayout.addWidget(self.groupBox)
- self.groupbox_image_popup = QtWidgets.QGroupBox(self.tab_advanced)
+ self.groupbox_image_popup = QtWidgets.QGroupBox(parent=self.tab_advanced)
self.groupbox_image_popup.setCheckable(True)
self.groupbox_image_popup.setObjectName("groupbox_image_popup")
self.gridLayout_2 = QtWidgets.QGridLayout(self.groupbox_image_popup)
self.gridLayout_2.setObjectName("gridLayout_2")
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
- self.label = QtWidgets.QLabel(self.groupbox_image_popup)
+ self.label = QtWidgets.QLabel(parent=self.groupbox_image_popup)
self.label.setObjectName("label")
self.horizontalLayout_4.addWidget(self.label)
- self.spin_popup_w = QtWidgets.QSpinBox(self.groupbox_image_popup)
+ self.spin_popup_w = QtWidgets.QSpinBox(parent=self.groupbox_image_popup)
self.spin_popup_w.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.spin_popup_w.setMinimum(100)
self.spin_popup_w.setMaximum(10000)
self.spin_popup_w.setObjectName("spin_popup_w")
self.horizontalLayout_4.addWidget(self.spin_popup_w)
- self.label_2 = QtWidgets.QLabel(self.groupbox_image_popup)
+ self.label_2 = QtWidgets.QLabel(parent=self.groupbox_image_popup)
self.label_2.setObjectName("label_2")
self.horizontalLayout_4.addWidget(self.label_2)
- self.spin_popup_h = QtWidgets.QSpinBox(self.groupbox_image_popup)
+ self.spin_popup_h = QtWidgets.QSpinBox(parent=self.groupbox_image_popup)
self.spin_popup_h.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.spin_popup_h.setMinimum(100)
self.spin_popup_h.setMaximum(10000)
self.spin_popup_h.setObjectName("spin_popup_h")
self.horizontalLayout_4.addWidget(self.spin_popup_h)
- spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.horizontalLayout_4.addItem(spacerItem5)
+ spacerItem4 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.horizontalLayout_4.addItem(spacerItem4)
self.gridLayout_2.addLayout(self.horizontalLayout_4, 0, 0, 1, 1)
self.verticalLayout.addWidget(self.groupbox_image_popup)
- self.groupBox_cache = QtWidgets.QGroupBox(self.tab_advanced)
+ self.groupBox_cache = QtWidgets.QGroupBox(parent=self.tab_advanced)
self.groupBox_cache.setObjectName("groupBox_cache")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout(self.groupBox_cache)
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
- self.pb_clear_cache = QtWidgets.QPushButton(self.groupBox_cache)
+ self.pb_clear_cache = QtWidgets.QPushButton(parent=self.groupBox_cache)
self.pb_clear_cache.setObjectName("pb_clear_cache")
self.horizontalLayout_6.addWidget(self.pb_clear_cache)
- self.pb_open_cache_dir = QtWidgets.QPushButton(self.groupBox_cache)
+ self.pb_open_cache_dir = QtWidgets.QPushButton(parent=self.groupBox_cache)
self.pb_open_cache_dir.setObjectName("pb_open_cache_dir")
self.horizontalLayout_6.addWidget(self.pb_open_cache_dir)
- self.label_cache = QtWidgets.QLabel(self.groupBox_cache)
+ self.label_cache = QtWidgets.QLabel(parent=self.groupBox_cache)
self.label_cache.setObjectName("label_cache")
self.horizontalLayout_6.addWidget(self.label_cache)
- spacerItem6 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.horizontalLayout_6.addItem(spacerItem6)
+ spacerItem5 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.horizontalLayout_6.addItem(spacerItem5)
self.verticalLayout.addWidget(self.groupBox_cache)
- self.groupBox_logging = QtWidgets.QGroupBox(self.tab_advanced)
+ self.groupBox_logging = QtWidgets.QGroupBox(parent=self.tab_advanced)
self.groupBox_logging.setObjectName("groupBox_logging")
self.gridLayout_6 = QtWidgets.QGridLayout(self.groupBox_logging)
self.gridLayout_6.setObjectName("gridLayout_6")
- self.combo_logging = QtWidgets.QComboBox(self.groupBox_logging)
+ self.combo_logging = QtWidgets.QComboBox(parent=self.groupBox_logging)
self.combo_logging.setObjectName("combo_logging")
self.gridLayout_6.addWidget(self.combo_logging, 0, 1, 1, 1)
- spacerItem7 = QtWidgets.QSpacerItem(190, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
- self.gridLayout_6.addItem(spacerItem7, 0, 3, 1, 1)
- self.pb_open_log = QtWidgets.QPushButton(self.groupBox_logging)
+ spacerItem6 = QtWidgets.QSpacerItem(190, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+ self.gridLayout_6.addItem(spacerItem6, 0, 3, 1, 1)
+ self.pb_open_log = QtWidgets.QPushButton(parent=self.groupBox_logging)
self.pb_open_log.setMaximumSize(QtCore.QSize(30, 16777215))
self.pb_open_log.setObjectName("pb_open_log")
self.gridLayout_6.addWidget(self.pb_open_log, 0, 2, 1, 1)
- self.label_logging = QtWidgets.QLabel(self.groupBox_logging)
+ self.label_logging = QtWidgets.QLabel(parent=self.groupBox_logging)
self.label_logging.setObjectName("label_logging")
self.gridLayout_6.addWidget(self.label_logging, 0, 0, 1, 1)
self.verticalLayout.addWidget(self.groupBox_logging)
- spacerItem8 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
- self.verticalLayout.addItem(spacerItem8)
+ spacerItem7 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+ self.verticalLayout.addItem(spacerItem7)
self.tabWidget.addTab(self.tab_advanced, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
@@ -239,7 +228,6 @@ class Ui_Dialog(object):
self.label_notification_priority.setText(_translate("Dialog", "Minimum priority to show notifications:"))
self.cb_tray_icon_unread.setText(_translate("Dialog", "Change the tray icon color when there are unread notifications"))
self.groupBox_2.setTitle(_translate("Dialog", "Interface"))
- self.label_theme.setText(_translate("Dialog", "Theme:"))
self.cb_priority_colors.setToolTip(_translate("Dialog", "4..7 -> medium\n"
"8..10 -> high"))
self.cb_priority_colors.setText(_translate("Dialog", "Show message priority colors"))
diff --git a/gotify_tray/gui/designs/widget_settings.ui b/gotify_tray/gui/designs/widget_settings.ui
index aed2599..62e3a45 100644
--- a/gotify_tray/gui/designs/widget_settings.ui
+++ b/gotify_tray/gui/designs/widget_settings.ui
@@ -7,7 +7,7 @@
0
0
415
- 450
+ 420
@@ -130,33 +130,6 @@
Interface
- -
-
-
-
-
-
- Theme:
-
-
-
- -
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
diff --git a/gotify_tray/gui/themes/__init__.py b/gotify_tray/gui/themes/__init__.py
index ceddc54..72dfd0f 100644
--- a/gotify_tray/gui/themes/__init__.py
+++ b/gotify_tray/gui/themes/__init__.py
@@ -1,59 +1,28 @@
-import logging
from PyQt6 import QtCore, QtGui, QtWidgets
from gotify_tray.utils import get_abs_path
-from . import default, dark_purple, light_purple
-from gotify_tray.database import Settings
-
-
-settings = Settings("gotify-tray")
-logger = logging.getLogger("gotify-tray")
themes = {
- "default": default,
- "automatic": None,
- "dark purple": dark_purple,
- "light purple": light_purple,
+ QtCore.Qt.ColorScheme.Dark: "dark",
+ QtCore.Qt.ColorScheme.Light: "light",
+ QtCore.Qt.ColorScheme.Unknown: "light",
}
-def get_themes():
- return themes.keys()
-
-
-def is_dark_mode(app: QtWidgets.QApplication) -> bool:
- return app.styleHints().colorScheme() == QtCore.Qt.ColorScheme.Dark
-
-
-def is_valid_theme(theme: str) -> bool:
- return theme in get_themes()
-
-
-def set_theme(app: QtWidgets.QApplication, theme: str = "automatic"):
- if not is_valid_theme(theme):
- logger.warning(f"set_theme: theme {theme} is unsupported.")
- theme = "automatic"
-
- if theme == "automatic":
- theme = "dark purple" if is_dark_mode(app) else "light purple"
+def set_theme(app: QtWidgets.QApplication):
+ theme = themes.get(app.styleHints().colorScheme(), "light")
stylesheet = ""
- with open(get_abs_path(f"gotify_tray/gui/themes/{theme.replace(' ', '_')}/style.qss"), "r") as f:
+ with open(get_abs_path(f"gotify_tray/gui/themes/base.qss"), "r") as f:
+ stylesheet += f.read()
+ with open(get_abs_path(f"gotify_tray/gui/themes/{theme}/style.qss"), "r") as f:
stylesheet += f.read()
- app.setPalette(themes[theme].get_palette())
+ app.setPalette(QtGui.QPalette())
app.setStyleSheet(stylesheet)
-def get_theme_file(file: str, theme: str | None = None) -> str:
- theme = settings.value("theme", type=str) if not theme else theme
-
- if not is_valid_theme(theme):
- logger.warning(f"set_theme: theme {theme} is unsupported.")
- theme = "automatic"
-
- if theme in ("automatic", "default"):
- app = QtCore.QCoreApplication.instance()
- theme = "dark purple" if is_dark_mode(app) else "light purple"
-
- return get_abs_path(f"gotify_tray/gui/themes/{theme.replace(' ', '_')}/{file}")
+def get_theme_file(file: str) -> str:
+ app = QtCore.QCoreApplication.instance()
+ theme = themes.get(app.styleHints().colorScheme(), "light")
+ return get_abs_path(f"gotify_tray/gui/themes/{theme}/{file}")
diff --git a/gotify_tray/gui/themes/base.qss b/gotify_tray/gui/themes/base.qss
new file mode 100644
index 0000000..119a62d
--- /dev/null
+++ b/gotify_tray/gui/themes/base.qss
@@ -0,0 +1,7 @@
+MessageWidget QPushButton[objectName^="pb_delete"] {
+ qproperty-iconSize: 24px;
+}
+
+MessageWidget QLabel[objectName^="label_date"] {
+ margin-right: 1px;
+}
diff --git a/gotify_tray/gui/themes/dark_purple/refresh.svg b/gotify_tray/gui/themes/dark/refresh.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/refresh.svg
rename to gotify_tray/gui/themes/dark/refresh.svg
diff --git a/gotify_tray/gui/themes/dark_purple/status_active.svg b/gotify_tray/gui/themes/dark/status_active.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/status_active.svg
rename to gotify_tray/gui/themes/dark/status_active.svg
diff --git a/gotify_tray/gui/themes/dark_purple/status_connecting.svg b/gotify_tray/gui/themes/dark/status_connecting.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/status_connecting.svg
rename to gotify_tray/gui/themes/dark/status_connecting.svg
diff --git a/gotify_tray/gui/themes/dark_purple/status_error.svg b/gotify_tray/gui/themes/dark/status_error.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/status_error.svg
rename to gotify_tray/gui/themes/dark/status_error.svg
diff --git a/gotify_tray/gui/themes/dark_purple/status_inactive.svg b/gotify_tray/gui/themes/dark/status_inactive.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/status_inactive.svg
rename to gotify_tray/gui/themes/dark/status_inactive.svg
diff --git a/gotify_tray/gui/themes/dark/style.qss b/gotify_tray/gui/themes/dark/style.qss
new file mode 100644
index 0000000..1cd145a
--- /dev/null
+++ b/gotify_tray/gui/themes/dark/style.qss
@@ -0,0 +1,23 @@
+ServerInfoDialog QPushButton[state="success"] {
+ background-color: #960b7a0b;
+ color: white;
+}
+
+ServerInfoDialog QPushButton[state="success"]:!default:hover {
+ background: #960b7a0b;
+}
+
+ServerInfoDialog QPushButton[state="failed"] {
+ background-color: #8ebb2929;
+ color: white;
+}
+
+ServerInfoDialog QPushButton[state="failed"]:!default:hover {
+ background: #8ebb2929;
+}
+
+ServerInfoDialog QLineEdit[state="success"] {}
+
+ServerInfoDialog QLineEdit[state="failed"] {
+ border: 1px solid red;
+}
diff --git a/gotify_tray/gui/themes/dark_purple/trashcan.svg b/gotify_tray/gui/themes/dark/trashcan.svg
similarity index 100%
rename from gotify_tray/gui/themes/dark_purple/trashcan.svg
rename to gotify_tray/gui/themes/dark/trashcan.svg
diff --git a/gotify_tray/gui/themes/dark_purple/__init__.py b/gotify_tray/gui/themes/dark_purple/__init__.py
deleted file mode 100644
index 30e805f..0000000
--- a/gotify_tray/gui/themes/dark_purple/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .palette import get_palette
diff --git a/gotify_tray/gui/themes/dark_purple/palette.py b/gotify_tray/gui/themes/dark_purple/palette.py
deleted file mode 100644
index e3c5d10..0000000
--- a/gotify_tray/gui/themes/dark_purple/palette.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from PyQt6 import QtGui
-
-
-def get_palette() -> QtGui.QPalette:
- palette = QtGui.QPalette()
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0x2E2E30))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0x2E2E30))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0x424242))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0xCACBCE))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0xC8C8C6))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0x707070))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0xCACBCE))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0xC8C8C6))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0x707070))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0x7D7D82))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0x87888C))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0x737373))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0x252627))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0x2E2E30))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0x333333))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0x27272A))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0x27272A))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0x343437))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0x2C2C30))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0x2B2B2F))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0x36363A))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.ToolTipBase, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.ToolTipText, QtGui.QColor(0xBFBFBF))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Button, QtGui.QColor(0x222223))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Button, QtGui.QColor(0x222223))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Button, QtGui.QColor(0x2B2A2A))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0xB9B9BE))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0x9E9FA5))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0x73747E))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x6D29DC))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x5522a8))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0xCCCCCC))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0xCECECE))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0x707070))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Light, QtGui.QColor(0x414145))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Midlight, QtGui.QColor(0x39393C))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Mid, QtGui.QColor(0x2F2F32))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Dark, QtGui.QColor(0x202022))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Shadow, QtGui.QColor(0x19191A))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Link, QtGui.QColor(0xAE7AFF))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Link, QtGui.QColor(0xAE7AFF))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.LinkVisited, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.LinkVisited, QtGui.QColor(0x6D29DC))
-
- return palette
diff --git a/gotify_tray/gui/themes/dark_purple/style.qss b/gotify_tray/gui/themes/dark_purple/style.qss
deleted file mode 100644
index 11d9b03..0000000
--- a/gotify_tray/gui/themes/dark_purple/style.qss
+++ /dev/null
@@ -1,60 +0,0 @@
-QPushButton:!default:hover {
- background: #441b85;
-}
-
-QPushButton:default:hover, QPushButton:checked:hover {
- background: #441b85;
-}
-
-ServerInfoDialog QPushButton[state="success"] {
- background-color: #960b7a0b;
- color: white;
-}
-
-ServerInfoDialog QPushButton[state="success"]:!default:hover {
- background: #960b7a0b;
-}
-
-ServerInfoDialog QPushButton[state="failed"] {
- background-color: #8ebb2929;
- color: white;
-}
-
-ServerInfoDialog QPushButton[state="failed"]:!default:hover {
- background: #8ebb2929;
-}
-
-ServerInfoDialog QLineEdit[state="success"] {}
-
-ServerInfoDialog QLineEdit[state="failed"] {
- border: 1px solid red;
-}
-
-QToolTip {
- color: #BFBFBF;
- background-color: #5522a8;
-}
-
-QListView[objectName^="listView_applications"] {
- background-color: #2E2E30;
-}
-
-MessageWidget QFrame {
- background-color: #2E2E30;
-}
-
-MessageWidget QPushButton {
- border: 0px;
-}
-
-MessageWidget QPushButton:!default:hover {
- background: #7249b5;
-}
-
-MessageWidget QPushButton:!default:pressed {
- background: #5c3b91;
-}
-
-QCheckBox::indicator:unchecked {
- border: 2px solid #4A4A4A;
-}
diff --git a/gotify_tray/gui/themes/default/__init__.py b/gotify_tray/gui/themes/default/__init__.py
deleted file mode 100644
index 30e805f..0000000
--- a/gotify_tray/gui/themes/default/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .palette import get_palette
diff --git a/gotify_tray/gui/themes/default/palette.py b/gotify_tray/gui/themes/default/palette.py
deleted file mode 100644
index 0b63eb9..0000000
--- a/gotify_tray/gui/themes/default/palette.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from PyQt6 import QtGui
-
-
-def get_palette() -> QtGui.QPalette:
- palette = QtGui.QPalette()
-
- return palette
diff --git a/gotify_tray/gui/themes/default/style.qss b/gotify_tray/gui/themes/default/style.qss
deleted file mode 100644
index e69de29..0000000
diff --git a/gotify_tray/gui/themes/light_purple/refresh.svg b/gotify_tray/gui/themes/light/refresh.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/refresh.svg
rename to gotify_tray/gui/themes/light/refresh.svg
diff --git a/gotify_tray/gui/themes/light_purple/status_active.svg b/gotify_tray/gui/themes/light/status_active.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/status_active.svg
rename to gotify_tray/gui/themes/light/status_active.svg
diff --git a/gotify_tray/gui/themes/light_purple/status_connecting.svg b/gotify_tray/gui/themes/light/status_connecting.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/status_connecting.svg
rename to gotify_tray/gui/themes/light/status_connecting.svg
diff --git a/gotify_tray/gui/themes/light_purple/status_error.svg b/gotify_tray/gui/themes/light/status_error.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/status_error.svg
rename to gotify_tray/gui/themes/light/status_error.svg
diff --git a/gotify_tray/gui/themes/light_purple/status_inactive.svg b/gotify_tray/gui/themes/light/status_inactive.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/status_inactive.svg
rename to gotify_tray/gui/themes/light/status_inactive.svg
diff --git a/gotify_tray/gui/themes/light_purple/style.qss b/gotify_tray/gui/themes/light/style.qss
similarity index 56%
rename from gotify_tray/gui/themes/light_purple/style.qss
rename to gotify_tray/gui/themes/light/style.qss
index 4c3d4c5..f7e15fd 100644
--- a/gotify_tray/gui/themes/light_purple/style.qss
+++ b/gotify_tray/gui/themes/light/style.qss
@@ -1,11 +1,3 @@
-QPushButton:!default:hover {
- background: #5c24b6;
-}
-
-QPushButton:default:hover, QPushButton:checked:hover {
- background: #5c24b6;
-}
-
ServerInfoDialog QPushButton[state="success"] {
background-color: #6400FF00;
color: black;
@@ -29,20 +21,3 @@ ServerInfoDialog QLineEdit[state="success"] {}
ServerInfoDialog QLineEdit[state="failed"] {
border: 1px solid red;
}
-
-QToolTip {
- color: #BFBFBF;
- background-color: #5522a8;
-}
-
-MessageWidget QPushButton {
- border: 0px;
-}
-
-MessageWidget QPushButton:!default:hover {
- background: #9662ea;
-}
-
-MessageWidget QPushButton:!default:pressed {
- background: #7a4dc2;
-}
diff --git a/gotify_tray/gui/themes/light_purple/trashcan.svg b/gotify_tray/gui/themes/light/trashcan.svg
similarity index 100%
rename from gotify_tray/gui/themes/light_purple/trashcan.svg
rename to gotify_tray/gui/themes/light/trashcan.svg
diff --git a/gotify_tray/gui/themes/light_purple/__init__.py b/gotify_tray/gui/themes/light_purple/__init__.py
deleted file mode 100644
index 30e805f..0000000
--- a/gotify_tray/gui/themes/light_purple/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from .palette import get_palette
diff --git a/gotify_tray/gui/themes/light_purple/palette.py b/gotify_tray/gui/themes/light_purple/palette.py
deleted file mode 100644
index 8e54a51..0000000
--- a/gotify_tray/gui/themes/light_purple/palette.py
+++ /dev/null
@@ -1,61 +0,0 @@
-from PyQt6 import QtGui
-
-
-def get_palette() -> QtGui.QPalette:
- palette = QtGui.QPalette()
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0xF7F7F7))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0xFCFCFC))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Window, QtGui.QColor(0xEDEDED))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0x1D1D20))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0x252528))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.WindowText, QtGui.QColor(0x8C8C92))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0x1D1D20))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0x252528))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Text, QtGui.QColor(0x8C8C92))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0x71727D))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0x878893))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.PlaceholderText, QtGui.QColor(0xA3A4AC))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0xF3F3F4))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0xEAEAEB))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.BrightText, QtGui.QColor(0xE4E5E7))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0xF9F9F9))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0xFCFCFC))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Base, QtGui.QColor(0xEFEFF2))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0xECF3E8))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0xF1F6EE))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.AlternateBase, QtGui.QColor(0xE1E9DD))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.ToolTipBase, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.ToolTipText, QtGui.QColor(0xBFBFBF))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0x181A18))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0x454A54))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.ButtonText, QtGui.QColor(0x97979B))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x6D29DC))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Highlight, QtGui.QColor(0x5522a8))
-
- palette.setColor(QtGui.QPalette.ColorGroup.Active, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0xCCCCCC))
- palette.setColor(QtGui.QPalette.ColorGroup.Inactive, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0xCECECE))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.HighlightedText, QtGui.QColor(0x707070))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Light, QtGui.QColor(0xF9F9F9))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Midlight, QtGui.QColor(0xE9E9EB))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Mid, QtGui.QColor(0xC9C9CF))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Dark, QtGui.QColor(0xBBBBC2))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Shadow, QtGui.QColor(0x6C6D79))
-
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.Link, QtGui.QColor(0x723BC4))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.Link, QtGui.QColor(0x723BC4))
- palette.setColor(QtGui.QPalette.ColorGroup.All, QtGui.QPalette.ColorRole.LinkVisited, QtGui.QColor(0x5522a8))
- palette.setColor(QtGui.QPalette.ColorGroup.Disabled, QtGui.QPalette.ColorRole.LinkVisited, QtGui.QColor(0x6D29DC))
-
- return palette
diff --git a/gotify_tray/gui/widgets/MessageWidget.py b/gotify_tray/gui/widgets/MessageWidget.py
index 57e5b7b..ee8424d 100644
--- a/gotify_tray/gui/widgets/MessageWidget.py
+++ b/gotify_tray/gui/widgets/MessageWidget.py
@@ -101,7 +101,6 @@ class MessageWidget(QtWidgets.QWidget, Ui_Form):
def set_icons(self):
self.pb_delete.setIcon(QtGui.QIcon(get_theme_file("trashcan.svg")))
- self.pb_delete.setIconSize(QtCore.QSize(24, 24))
def set_message_image(self, filename: str):
pixmap = QtGui.QPixmap(filename)
diff --git a/gotify_tray/gui/widgets/SettingsDialog.py b/gotify_tray/gui/widgets/SettingsDialog.py
index c992802..5f8c1af 100644
--- a/gotify_tray/gui/widgets/SettingsDialog.py
+++ b/gotify_tray/gui/widgets/SettingsDialog.py
@@ -13,7 +13,6 @@ from gotify_tray.tasks import (
CacheSizeTask,
ClearCacheTask,
)
-from gotify_tray.gui.themes import get_themes
from PyQt6 import QtCore, QtGui, QtWidgets
from ..designs.widget_settings import Ui_Dialog
@@ -25,7 +24,6 @@ settings = Settings("gotify-tray")
class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
quit_requested = QtCore.pyqtSignal()
- theme_change_requested = QtCore.pyqtSignal(str)
def __init__(self):
super(SettingsDialog, self).__init__()
@@ -60,8 +58,6 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
self.cb_tray_icon_unread.setChecked(settings.value("tray/icon/unread", type=bool))
# Interface
- self.combo_theme.addItems(get_themes())
- self.combo_theme.setCurrentText(settings.value("theme", type=str))
self.cb_priority_colors.setChecked(settings.value("MessageWidget/priority_color", type=bool))
self.cb_locale.setChecked(settings.value("locale", type=bool))
@@ -193,7 +189,6 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
self.cb_tray_icon_unread.stateChanged.connect(self.settings_changed_callback)
# Interface
- self.combo_theme.currentTextChanged.connect(self.settings_changed_callback)
self.cb_priority_colors.stateChanged.connect(self.settings_changed_callback)
self.cb_locale.stateChanged.connect(self.settings_changed_callback)
@@ -230,12 +225,6 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
settings.setValue("tray/icon/unread", self.cb_tray_icon_unread.isChecked())
# Interface
- current_theme = settings.value("theme", type=str)
- selected_theme = self.combo_theme.currentText()
- if current_theme != selected_theme:
- settings.setValue("theme", selected_theme)
- self.theme_change_requested.emit(selected_theme)
-
settings.setValue("MessageWidget/priority_color", self.cb_priority_colors.isChecked())
settings.setValue("locale", self.cb_locale.isChecked())
diff --git a/setup.py b/setup.py
index a06ea08..5c378ee 100644
--- a/setup.py
+++ b/setup.py
@@ -64,9 +64,9 @@ setup(
packages=find_packages(),
package_data={
'gotify_tray.gui.images': ['*.ico', '*.png'],
- 'gotify_tray.gui.themes.default': ['*.qss', '*.svg', '*.png'],
- 'gotify_tray.gui.themes.dark_purple': ['*.qss', '*.svg', '*.png'],
- 'gotify_tray.gui.themes.light_purple': ['*.qss', '*.svg', '*.png'],
+ 'gotify_tray.gui.themes': ['*.qss'],
+ 'gotify_tray.gui.themes.dark': ['*.qss', '*.svg', '*.png'],
+ 'gotify_tray.gui.themes.light': ['*.qss', '*.svg', '*.png'],
},
data_files = [
],