check for missed messages on reconnect
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
DEFAULT_SETTINGS = {
|
DEFAULT_SETTINGS = {
|
||||||
|
"message/check_missed/notify": False,
|
||||||
|
"message/last_id": 0,
|
||||||
"logging/level": "Disabled",
|
"logging/level": "Disabled",
|
||||||
"tray/notifications/priority": 5,
|
"tray/notifications/priority": 5,
|
||||||
"tray/notifications/duration_ms": 5000,
|
"tray/notifications/duration_ms": 5000,
|
||||||
|
|||||||
@@ -80,6 +80,8 @@ class MainApplication(QtWidgets.QApplication):
|
|||||||
self.tray = Tray()
|
self.tray = Tray()
|
||||||
self.tray.show()
|
self.tray.show()
|
||||||
|
|
||||||
|
self.first_connect = True
|
||||||
|
|
||||||
self.gotify_client.listen(
|
self.gotify_client.listen(
|
||||||
new_message_callback=self.new_message_callback,
|
new_message_callback=self.new_message_callback,
|
||||||
opened_callback=self.listener_opened_callback,
|
opened_callback=self.listener_opened_callback,
|
||||||
@@ -123,10 +125,39 @@ class MainApplication(QtWidgets.QApplication):
|
|||||||
i + 1, 0, ApplicationModelItem(application, icon),
|
i + 1, 0, ApplicationModelItem(application, icon),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def update_last_id(self, i: int):
|
||||||
|
if i > settings.value("message/last_id", type=int):
|
||||||
|
settings.setValue("message/last_id", i)
|
||||||
|
|
||||||
def listener_opened_callback(self):
|
def listener_opened_callback(self):
|
||||||
self.main_window.set_active()
|
self.main_window.set_active()
|
||||||
self.tray.set_icon_ok()
|
self.tray.set_icon_ok()
|
||||||
|
|
||||||
|
if self.first_connect:
|
||||||
|
# Do not check for missed messages on launch
|
||||||
|
self.first_connect = False
|
||||||
|
return
|
||||||
|
|
||||||
|
def get_missed_messages_callback(page: gotify.GotifyPagedMessagesModel):
|
||||||
|
last_id = settings.value("message/last_id", type=int)
|
||||||
|
ids = []
|
||||||
|
|
||||||
|
page.messages.reverse()
|
||||||
|
for message in page.messages:
|
||||||
|
if message.id > last_id:
|
||||||
|
if settings.value("message/check_missed/notify", type=bool):
|
||||||
|
self.new_message_callback(message)
|
||||||
|
else:
|
||||||
|
self.add_message_to_model(message)
|
||||||
|
ids.append(message.id)
|
||||||
|
|
||||||
|
if ids:
|
||||||
|
self.update_last_id(max(ids))
|
||||||
|
|
||||||
|
self.get_missed_messages_task = GetMessagesTask(self.gotify_client)
|
||||||
|
self.get_missed_messages_task.success.connect(get_missed_messages_callback)
|
||||||
|
self.get_missed_messages_task.start()
|
||||||
|
|
||||||
def listener_closed_callback(self, close_status_code: int, close_msg: str):
|
def listener_closed_callback(self, close_status_code: int, close_msg: str):
|
||||||
self.main_window.set_connecting()
|
self.main_window.set_connecting()
|
||||||
self.tray.set_icon_error()
|
self.tray.set_icon_error()
|
||||||
@@ -149,6 +180,7 @@ class MainApplication(QtWidgets.QApplication):
|
|||||||
message: gotify.GotifyMessageModel,
|
message: gotify.GotifyMessageModel,
|
||||||
application: gotify.GotifyApplicationModel,
|
application: gotify.GotifyApplicationModel,
|
||||||
):
|
):
|
||||||
|
self.update_last_id(message.id)
|
||||||
message_item = MessagesModelItem(message)
|
message_item = MessagesModelItem(message)
|
||||||
self.messages_model.insertRow(row, message_item)
|
self.messages_model.insertRow(row, message_item)
|
||||||
self.main_window.insert_message_widget(
|
self.main_window.insert_message_widget(
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ class Ui_Dialog(object):
|
|||||||
self.gridLayout.setObjectName("gridLayout")
|
self.gridLayout.setObjectName("gridLayout")
|
||||||
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
|
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
|
||||||
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
|
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
|
||||||
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Apply|QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
|
self.buttonBox.setStandardButtons(
|
||||||
|
QtWidgets.QDialogButtonBox.StandardButton.Apply
|
||||||
|
| QtWidgets.QDialogButtonBox.StandardButton.Cancel
|
||||||
|
| QtWidgets.QDialogButtonBox.StandardButton.Ok
|
||||||
|
)
|
||||||
self.buttonBox.setObjectName("buttonBox")
|
self.buttonBox.setObjectName("buttonBox")
|
||||||
self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 1)
|
self.gridLayout.addWidget(self.buttonBox, 1, 0, 1, 1)
|
||||||
self.tabWidget = QtWidgets.QTabWidget(Dialog)
|
self.tabWidget = QtWidgets.QTabWidget(Dialog)
|
||||||
@@ -30,29 +34,37 @@ class Ui_Dialog(object):
|
|||||||
self.groupBox_5.setObjectName("groupBox_5")
|
self.groupBox_5.setObjectName("groupBox_5")
|
||||||
self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_5)
|
self.gridLayout_4 = QtWidgets.QGridLayout(self.groupBox_5)
|
||||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(
|
||||||
|
40,
|
||||||
|
20,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||||
|
)
|
||||||
|
self.gridLayout_4.addItem(spacerItem, 0, 2, 1, 1)
|
||||||
|
self.label_6 = QtWidgets.QLabel(self.groupBox_5)
|
||||||
|
self.label_6.setObjectName("label_6")
|
||||||
|
self.gridLayout_4.addWidget(self.label_6, 1, 2, 1, 1)
|
||||||
|
self.label_4 = QtWidgets.QLabel(self.groupBox_5)
|
||||||
|
self.label_4.setObjectName("label_4")
|
||||||
|
self.gridLayout_4.addWidget(self.label_4, 0, 0, 1, 1)
|
||||||
|
self.label_5 = QtWidgets.QLabel(self.groupBox_5)
|
||||||
|
self.label_5.setObjectName("label_5")
|
||||||
|
self.gridLayout_4.addWidget(self.label_5, 1, 0, 1, 1)
|
||||||
self.spin_duration = QtWidgets.QSpinBox(self.groupBox_5)
|
self.spin_duration = QtWidgets.QSpinBox(self.groupBox_5)
|
||||||
self.spin_duration.setMinimum(500)
|
self.spin_duration.setMinimum(500)
|
||||||
self.spin_duration.setMaximum(30000)
|
self.spin_duration.setMaximum(30000)
|
||||||
self.spin_duration.setSingleStep(100)
|
self.spin_duration.setSingleStep(100)
|
||||||
self.spin_duration.setObjectName("spin_duration")
|
self.spin_duration.setObjectName("spin_duration")
|
||||||
self.gridLayout_4.addWidget(self.spin_duration, 1, 1, 1, 1)
|
self.gridLayout_4.addWidget(self.spin_duration, 1, 1, 1, 1)
|
||||||
self.label_6 = QtWidgets.QLabel(self.groupBox_5)
|
|
||||||
self.label_6.setObjectName("label_6")
|
|
||||||
self.gridLayout_4.addWidget(self.label_6, 1, 2, 1, 1)
|
|
||||||
self.label_5 = QtWidgets.QLabel(self.groupBox_5)
|
|
||||||
self.label_5.setObjectName("label_5")
|
|
||||||
self.gridLayout_4.addWidget(self.label_5, 1, 0, 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_4 = QtWidgets.QLabel(self.groupBox_5)
|
|
||||||
self.label_4.setObjectName("label_4")
|
|
||||||
self.gridLayout_4.addWidget(self.label_4, 0, 0, 1, 1)
|
|
||||||
self.spin_priority = QtWidgets.QSpinBox(self.groupBox_5)
|
self.spin_priority = QtWidgets.QSpinBox(self.groupBox_5)
|
||||||
self.spin_priority.setMinimum(1)
|
self.spin_priority.setMinimum(1)
|
||||||
self.spin_priority.setMaximum(10)
|
self.spin_priority.setMaximum(10)
|
||||||
self.spin_priority.setProperty("value", 5)
|
self.spin_priority.setProperty("value", 5)
|
||||||
self.spin_priority.setObjectName("spin_priority")
|
self.spin_priority.setObjectName("spin_priority")
|
||||||
self.gridLayout_4.addWidget(self.spin_priority, 0, 1, 1, 1)
|
self.gridLayout_4.addWidget(self.spin_priority, 0, 1, 1, 1)
|
||||||
|
self.cb_notify = QtWidgets.QCheckBox(self.groupBox_5)
|
||||||
|
self.cb_notify.setObjectName("cb_notify")
|
||||||
|
self.gridLayout_4.addWidget(self.cb_notify, 2, 0, 1, 3)
|
||||||
self.verticalLayout_4.addWidget(self.groupBox_5)
|
self.verticalLayout_4.addWidget(self.groupBox_5)
|
||||||
self.groupBox_4 = QtWidgets.QGroupBox(self.tab_general)
|
self.groupBox_4 = QtWidgets.QGroupBox(self.tab_general)
|
||||||
self.groupBox_4.setObjectName("groupBox_4")
|
self.groupBox_4.setObjectName("groupBox_4")
|
||||||
@@ -61,7 +73,12 @@ class Ui_Dialog(object):
|
|||||||
self.pb_change_server_info = QtWidgets.QPushButton(self.groupBox_4)
|
self.pb_change_server_info = QtWidgets.QPushButton(self.groupBox_4)
|
||||||
self.pb_change_server_info.setObjectName("pb_change_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)
|
self.gridLayout_3.addWidget(self.pb_change_server_info, 0, 0, 1, 1)
|
||||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
spacerItem1 = QtWidgets.QSpacerItem(
|
||||||
|
40,
|
||||||
|
20,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||||
|
)
|
||||||
self.gridLayout_3.addItem(spacerItem1, 0, 1, 1, 1)
|
self.gridLayout_3.addItem(spacerItem1, 0, 1, 1, 1)
|
||||||
self.verticalLayout_4.addWidget(self.groupBox_4)
|
self.verticalLayout_4.addWidget(self.groupBox_4)
|
||||||
self.groupBox_7 = QtWidgets.QGroupBox(self.tab_general)
|
self.groupBox_7 = QtWidgets.QGroupBox(self.tab_general)
|
||||||
@@ -78,10 +95,20 @@ class Ui_Dialog(object):
|
|||||||
self.pb_open_log.setMaximumSize(QtCore.QSize(30, 16777215))
|
self.pb_open_log.setMaximumSize(QtCore.QSize(30, 16777215))
|
||||||
self.pb_open_log.setObjectName("pb_open_log")
|
self.pb_open_log.setObjectName("pb_open_log")
|
||||||
self.gridLayout_6.addWidget(self.pb_open_log, 0, 2, 1, 1)
|
self.gridLayout_6.addWidget(self.pb_open_log, 0, 2, 1, 1)
|
||||||
spacerItem2 = QtWidgets.QSpacerItem(190, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
spacerItem2 = QtWidgets.QSpacerItem(
|
||||||
|
190,
|
||||||
|
20,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||||
|
)
|
||||||
self.gridLayout_6.addItem(spacerItem2, 0, 3, 1, 1)
|
self.gridLayout_6.addItem(spacerItem2, 0, 3, 1, 1)
|
||||||
self.verticalLayout_4.addWidget(self.groupBox_7)
|
self.verticalLayout_4.addWidget(self.groupBox_7)
|
||||||
spacerItem3 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
|
spacerItem3 = QtWidgets.QSpacerItem(
|
||||||
|
20,
|
||||||
|
40,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||||
|
)
|
||||||
self.verticalLayout_4.addItem(spacerItem3)
|
self.verticalLayout_4.addItem(spacerItem3)
|
||||||
self.tabWidget.addTab(self.tab_general, "")
|
self.tabWidget.addTab(self.tab_general, "")
|
||||||
self.tab_fonts = QtWidgets.QWidget()
|
self.tab_fonts = QtWidgets.QWidget()
|
||||||
@@ -107,7 +134,12 @@ class Ui_Dialog(object):
|
|||||||
self.horizontalLayout.addWidget(self.pb_font_message_content)
|
self.horizontalLayout.addWidget(self.pb_font_message_content)
|
||||||
self.layout_fonts_message.addLayout(self.horizontalLayout)
|
self.layout_fonts_message.addLayout(self.horizontalLayout)
|
||||||
self.verticalLayout_5.addWidget(self.groupBox_2)
|
self.verticalLayout_5.addWidget(self.groupBox_2)
|
||||||
spacerItem4 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
|
spacerItem4 = QtWidgets.QSpacerItem(
|
||||||
|
20,
|
||||||
|
40,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Minimum,
|
||||||
|
QtWidgets.QSizePolicy.Policy.Expanding,
|
||||||
|
)
|
||||||
self.verticalLayout_5.addItem(spacerItem4)
|
self.verticalLayout_5.addItem(spacerItem4)
|
||||||
self.tabWidget.addTab(self.tab_fonts, "")
|
self.tabWidget.addTab(self.tab_fonts, "")
|
||||||
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
|
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
|
||||||
@@ -119,7 +151,8 @@ class Ui_Dialog(object):
|
|||||||
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
QtCore.QMetaObject.connectSlotsByName(Dialog)
|
||||||
Dialog.setTabOrder(self.tabWidget, self.spin_priority)
|
Dialog.setTabOrder(self.tabWidget, self.spin_priority)
|
||||||
Dialog.setTabOrder(self.spin_priority, self.spin_duration)
|
Dialog.setTabOrder(self.spin_priority, self.spin_duration)
|
||||||
Dialog.setTabOrder(self.spin_duration, self.pb_change_server_info)
|
Dialog.setTabOrder(self.spin_duration, self.cb_notify)
|
||||||
|
Dialog.setTabOrder(self.cb_notify, self.pb_change_server_info)
|
||||||
Dialog.setTabOrder(self.pb_change_server_info, self.combo_logging)
|
Dialog.setTabOrder(self.pb_change_server_info, self.combo_logging)
|
||||||
Dialog.setTabOrder(self.combo_logging, self.pb_open_log)
|
Dialog.setTabOrder(self.combo_logging, self.pb_open_log)
|
||||||
Dialog.setTabOrder(self.pb_open_log, self.pb_font_message_title)
|
Dialog.setTabOrder(self.pb_open_log, self.pb_font_message_title)
|
||||||
@@ -131,24 +164,37 @@ class Ui_Dialog(object):
|
|||||||
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
|
||||||
self.groupBox_5.setTitle(_translate("Dialog", "Notifications"))
|
self.groupBox_5.setTitle(_translate("Dialog", "Notifications"))
|
||||||
self.label_6.setText(_translate("Dialog", "ms"))
|
self.label_6.setText(_translate("Dialog", "ms"))
|
||||||
self.label_5.setText(_translate("Dialog", "Notification duration"))
|
self.label_4.setText(
|
||||||
self.label_4.setText(_translate("Dialog", "Minimum priority to show notifications:"))
|
_translate("Dialog", "Minimum priority to show notifications:")
|
||||||
|
)
|
||||||
|
self.label_5.setText(_translate("Dialog", "Notification duration:"))
|
||||||
|
self.cb_notify.setText(
|
||||||
|
_translate(
|
||||||
|
"Dialog",
|
||||||
|
"Show a notification for missed messages after reconnecting",
|
||||||
|
)
|
||||||
|
)
|
||||||
self.groupBox_4.setTitle(_translate("Dialog", "Server info"))
|
self.groupBox_4.setTitle(_translate("Dialog", "Server info"))
|
||||||
self.pb_change_server_info.setText(_translate("Dialog", "Change server info"))
|
self.pb_change_server_info.setText(_translate("Dialog", "Change server info"))
|
||||||
self.groupBox_7.setTitle(_translate("Dialog", "Logging"))
|
self.groupBox_7.setTitle(_translate("Dialog", "Logging"))
|
||||||
self.label_7.setText(_translate("Dialog", "Level"))
|
self.label_7.setText(_translate("Dialog", "Level"))
|
||||||
self.pb_open_log.setToolTip(_translate("Dialog", "Open logfile"))
|
self.pb_open_log.setToolTip(_translate("Dialog", "Open logfile"))
|
||||||
self.pb_open_log.setText(_translate("Dialog", "..."))
|
self.pb_open_log.setText(_translate("Dialog", "..."))
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_general), _translate("Dialog", "General"))
|
self.tabWidget.setTabText(
|
||||||
|
self.tabWidget.indexOf(self.tab_general), _translate("Dialog", "General")
|
||||||
|
)
|
||||||
self.groupBox_2.setTitle(_translate("Dialog", "Message"))
|
self.groupBox_2.setTitle(_translate("Dialog", "Message"))
|
||||||
self.pb_font_message_title.setText(_translate("Dialog", "Title"))
|
self.pb_font_message_title.setText(_translate("Dialog", "Title"))
|
||||||
self.pb_font_message_date.setText(_translate("Dialog", "Date"))
|
self.pb_font_message_date.setText(_translate("Dialog", "Date"))
|
||||||
self.pb_font_message_content.setText(_translate("Dialog", "Message"))
|
self.pb_font_message_content.setText(_translate("Dialog", "Message"))
|
||||||
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_fonts), _translate("Dialog", "Fonts"))
|
self.tabWidget.setTabText(
|
||||||
|
self.tabWidget.indexOf(self.tab_fonts), _translate("Dialog", "Fonts")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
app = QtWidgets.QApplication(sys.argv)
|
app = QtWidgets.QApplication(sys.argv)
|
||||||
Dialog = QtWidgets.QDialog()
|
Dialog = QtWidgets.QDialog()
|
||||||
ui = Ui_Dialog()
|
ui = Ui_Dialog()
|
||||||
|
|||||||
@@ -40,33 +40,6 @@
|
|||||||
<string>Notifications</string>
|
<string>Notifications</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QSpinBox" name="spin_duration">
|
|
||||||
<property name="minimum">
|
|
||||||
<number>500</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>30000</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QLabel" name="label_6">
|
|
||||||
<property name="text">
|
|
||||||
<string>ms</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="text">
|
|
||||||
<string>Notification duration</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2">
|
<item row="0" column="2">
|
||||||
<spacer name="horizontalSpacer_3">
|
<spacer name="horizontalSpacer_3">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@@ -80,6 +53,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>ms</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="label_4">
|
<widget class="QLabel" name="label_4">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -87,6 +67,26 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Notification duration:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QSpinBox" name="spin_duration">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>500</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>30000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QSpinBox" name="spin_priority">
|
<widget class="QSpinBox" name="spin_priority">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
@@ -100,6 +100,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -272,6 +279,7 @@
|
|||||||
<tabstop>tabWidget</tabstop>
|
<tabstop>tabWidget</tabstop>
|
||||||
<tabstop>spin_priority</tabstop>
|
<tabstop>spin_priority</tabstop>
|
||||||
<tabstop>spin_duration</tabstop>
|
<tabstop>spin_duration</tabstop>
|
||||||
|
<tabstop>cb_notify</tabstop>
|
||||||
<tabstop>pb_change_server_info</tabstop>
|
<tabstop>pb_change_server_info</tabstop>
|
||||||
<tabstop>combo_logging</tabstop>
|
<tabstop>combo_logging</tabstop>
|
||||||
<tabstop>pb_open_log</tabstop>
|
<tabstop>pb_open_log</tabstop>
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
settings.value("tray/notifications/duration_ms", type=int)
|
settings.value("tray/notifications/duration_ms", type=int)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.cb_notify.setChecked(
|
||||||
|
settings.value("message/check_missed/notify", type=bool)
|
||||||
|
)
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
self.combo_logging.addItems(
|
self.combo_logging.addItems(
|
||||||
[
|
[
|
||||||
@@ -97,6 +101,7 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
# Notifications
|
# Notifications
|
||||||
self.spin_priority.valueChanged.connect(self.settings_changed_callback)
|
self.spin_priority.valueChanged.connect(self.settings_changed_callback)
|
||||||
self.spin_duration.valueChanged.connect(self.settings_changed_callback)
|
self.spin_duration.valueChanged.connect(self.settings_changed_callback)
|
||||||
|
self.cb_notify.stateChanged.connect(self.settings_changed_callback)
|
||||||
|
|
||||||
# Server info
|
# Server info
|
||||||
self.pb_change_server_info.clicked.connect(self.change_server_info_callback)
|
self.pb_change_server_info.clicked.connect(self.change_server_info_callback)
|
||||||
@@ -122,6 +127,7 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
|
|||||||
# Priority
|
# Priority
|
||||||
settings.setValue("tray/notifications/priority", self.spin_priority.value())
|
settings.setValue("tray/notifications/priority", self.spin_priority.value())
|
||||||
settings.setValue("tray/notifications/duration_ms", self.spin_duration.value())
|
settings.setValue("tray/notifications/duration_ms", self.spin_duration.value())
|
||||||
|
settings.setValue("message/check_missed/notify", self.cb_notify.isChecked())
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
selected_level = self.combo_logging.currentText()
|
selected_level = self.combo_logging.currentText()
|
||||||
|
|||||||
Reference in New Issue
Block a user