add tray unread icon setting
This commit is contained in:
@@ -267,7 +267,10 @@ class MainApplication(QtWidgets.QApplication):
|
||||
self.add_message_to_model(message)
|
||||
|
||||
# Change the tray icon to show there are unread notifications
|
||||
if not self.main_window.isActiveWindow():
|
||||
if (
|
||||
settings.value("tray/icon/unread", type=bool)
|
||||
and not self.main_window.isActiveWindow()
|
||||
):
|
||||
self.tray.set_icon_unread()
|
||||
|
||||
# Show a notification
|
||||
@@ -340,7 +343,9 @@ class MainApplication(QtWidgets.QApplication):
|
||||
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))
|
||||
settings_dialog.theme_change_requested.connect(
|
||||
lambda theme: set_theme(self, theme)
|
||||
)
|
||||
accepted = settings_dialog.exec()
|
||||
|
||||
if accepted and settings_dialog.settings_changed:
|
||||
|
||||
@@ -12,7 +12,7 @@ from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
class Ui_Dialog(object):
|
||||
def setupUi(self, Dialog):
|
||||
Dialog.setObjectName("Dialog")
|
||||
Dialog.resize(384, 346)
|
||||
Dialog.resize(402, 369)
|
||||
self.gridLayout = QtWidgets.QGridLayout(Dialog)
|
||||
self.gridLayout.setObjectName("gridLayout")
|
||||
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
|
||||
@@ -30,26 +30,9 @@ class Ui_Dialog(object):
|
||||
self.groupBox_notifications.setObjectName("groupBox_notifications")
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_notifications)
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.cb_notify = QtWidgets.QCheckBox(self.groupBox_notifications)
|
||||
self.cb_notify.setObjectName("cb_notify")
|
||||
self.gridLayout_4.addWidget(self.cb_notify, 2, 0, 1, 3)
|
||||
self.label_notification_duration = QtWidgets.QLabel(self.groupBox_notifications)
|
||||
self.label_notification_duration.setObjectName("label_notification_duration")
|
||||
self.gridLayout_4.addWidget(self.label_notification_duration, 1, 0, 1, 1)
|
||||
self.label_notification_duration_ms = QtWidgets.QLabel(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)
|
||||
self.spin_priority = QtWidgets.QSpinBox(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)
|
||||
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
||||
self.gridLayout_4.addItem(spacerItem, 0, 2, 1, 1)
|
||||
self.label_notification_priority = QtWidgets.QLabel(self.groupBox_notifications)
|
||||
self.label_notification_priority.setObjectName("label_notification_priority")
|
||||
self.gridLayout_4.addWidget(self.label_notification_priority, 0, 0, 1, 1)
|
||||
self.spin_duration = QtWidgets.QSpinBox(self.groupBox_notifications)
|
||||
self.spin_duration.setMinimum(500)
|
||||
self.spin_duration.setMaximum(30000)
|
||||
@@ -59,6 +42,26 @@ class Ui_Dialog(object):
|
||||
self.cb_notification_click = QtWidgets.QCheckBox(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.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.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.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.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.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.setObjectName("groupBox_2")
|
||||
@@ -201,11 +204,12 @@ class Ui_Dialog(object):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
||||
self.groupBox_notifications.setTitle(_translate("Dialog", "Notifications"))
|
||||
self.cb_notify.setText(_translate("Dialog", "Show a notification for missed messages after reconnecting"))
|
||||
self.label_notification_duration.setText(_translate("Dialog", "Notification duration:"))
|
||||
self.label_notification_duration_ms.setText(_translate("Dialog", "ms"))
|
||||
self.label_notification_priority.setText(_translate("Dialog", "Minimum priority to show notifications:"))
|
||||
self.cb_notification_click.setText(_translate("Dialog", "Clicking the notification pop-up opens the main window"))
|
||||
self.label_notification_duration_ms.setText(_translate("Dialog", "ms"))
|
||||
self.cb_notify.setText(_translate("Dialog", "Show a notification for missed messages after reconnecting"))
|
||||
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.groupBox_server_info.setTitle(_translate("Dialog", "Server info"))
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>384</width>
|
||||
<height>346</height>
|
||||
<width>402</width>
|
||||
<height>369</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -40,13 +40,6 @@
|
||||
<string>Notifications</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="2" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cb_notify">
|
||||
<property name="text">
|
||||
<string>Show a notification for missed messages after reconnecting</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_notification_duration">
|
||||
<property name="text">
|
||||
@@ -54,46 +47,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_notification_duration_ms">
|
||||
<property name="text">
|
||||
<string>ms</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spin_priority">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_notification_priority">
|
||||
<property name="text">
|
||||
<string>Minimum priority to show notifications:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="spin_duration">
|
||||
<property name="minimum">
|
||||
@@ -114,6 +67,60 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLabel" name="label_notification_duration_ms">
|
||||
<property name="text">
|
||||
<string>ms</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cb_notify">
|
||||
<property name="text">
|
||||
<string>Show a notification for missed messages after reconnecting</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spin_priority">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_notification_priority">
|
||||
<property name="text">
|
||||
<string>Minimum priority to show notifications:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3">
|
||||
<widget class="QCheckBox" name="cb_tray_icon_unread">
|
||||
<property name="text">
|
||||
<string>Change the tray icon color when there are unread notifications</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -62,6 +62,10 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
settings.value("tray/notifications/click", type=bool)
|
||||
)
|
||||
|
||||
self.cb_tray_icon_unread.setChecked(
|
||||
settings.value("tray/icon/unread", type=bool)
|
||||
)
|
||||
|
||||
# Theme
|
||||
self.combo_theme.addItems(get_themes())
|
||||
self.combo_theme.setCurrentText(settings.value("theme", type=str))
|
||||
@@ -168,6 +172,7 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
self.spin_duration.valueChanged.connect(self.settings_changed_callback)
|
||||
self.cb_notify.stateChanged.connect(self.settings_changed_callback)
|
||||
self.cb_notification_click.stateChanged.connect(self.settings_changed_callback)
|
||||
self.cb_tray_icon_unread.stateChanged.connect(self.settings_changed_callback)
|
||||
|
||||
# Theme
|
||||
self.combo_theme.currentTextChanged.connect(self.settings_changed_callback)
|
||||
@@ -208,6 +213,7 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
||||
settings.setValue(
|
||||
"tray/notifications/click", self.cb_notification_click.isChecked()
|
||||
)
|
||||
settings.setValue("tray/icon/unread", self.cb_tray_icon_unread.isChecked())
|
||||
|
||||
# Theme
|
||||
current_theme = settings.value("theme", type=str)
|
||||
|
||||
Reference in New Issue
Block a user