Add message filtering by priority and subject, with CRITICAL always visible

- Implement MessagesProxyModel for client-side filtering
- Add priority filter buttons (LOW 0-3, NORMAL 4-8, HIGH 9, CRITICAL 10 always shown)
- Add subject filter menu with checkable actions for message titles
- Add Remove Filters button to reset all filters
- Restore priority 10 persistent notification setting in options
- Fix settings dialog errors and update UI layouts
- Ensure CRITICAL priority messages cannot be filtered out but can toggle persistent pop-ups
This commit is contained in:
kdusek
2025-12-01 18:02:05 +01:00
parent 09f85c5902
commit 4c3b6925e5
11 changed files with 422 additions and 221 deletions

View File

@@ -75,10 +75,6 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
settings.value("tray/notifications/priority10_persistent", type=bool)
)
self.cb_sound_only_priority10.setChecked(
settings.value("tray/notifications/sound_only_priority10", type=bool)
)
# Interface
self.cb_priority_colors.setChecked(
settings.value("MessageWidget/priority_color", type=bool)
@@ -259,9 +255,6 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
self.connect_signal(
self.cb_priority10_persistent.stateChanged, self.cb_priority10_persistent
)
self.connect_signal(
self.cb_sound_only_priority10.stateChanged, self.cb_sound_only_priority10
)
# Interface
self.connect_signal(
@@ -341,13 +334,18 @@ class SettingsDialog(QtWidgets.QDialog, Ui_Dialog):
self.cb_priority10_persistent.isChecked(),
self.cb_priority10_persistent,
)
self.set_value(
"tray/notifications/sound_only_priority10",
self.cb_sound_only_priority10.isChecked(),
self.cb_sound_only_priority10,
)
# Interface
self.set_value(
"tray/notifications/priority10_persistent",
True, # Always persistent for priority 10
None,
)
self.set_value(
"tray/notifications/sound_only_priority10",
False, # Not sound only
None,
)
self.set_value(
"MessageWidget/priority_color",
self.cb_priority_colors.isChecked(),