From efdc63e1ab5e6f300cf3e8ac679d65cc9f35759b Mon Sep 17 00:00:00 2001 From: kdusek Date: Mon, 1 Dec 2025 18:03:54 +0100 Subject: [PATCH] Remove subject filtering, keep only priority buttons - Remove subject filter menu and related code - Simplify filtering to priority groups only - Keep Remove Filters button for priority reset - Clean up unused code and UI elements --- gotify_tray/gui/MainApplication.py | 8 ------ gotify_tray/gui/designs/widget_main.py | 4 --- gotify_tray/gui/designs/widget_main.ui | 7 ----- gotify_tray/gui/models/MessagesModel.py | 34 ------------------------- gotify_tray/gui/widgets/MainWindow.py | 28 -------------------- 5 files changed, 81 deletions(-) diff --git a/gotify_tray/gui/MainApplication.py b/gotify_tray/gui/MainApplication.py index 70ebdbb..917ddb8 100644 --- a/gotify_tray/gui/MainApplication.py +++ b/gotify_tray/gui/MainApplication.py @@ -95,7 +95,6 @@ class MainApplication(QtWidgets.QApplication): self.messages_model = MessagesModel() self.messages_proxy_model = MessagesProxyModel() self.messages_proxy_model.setSourceModel(self.messages_model) - self.messages_proxy_model.update_unique_titles() # Ensure initial update self.application_model = ApplicationModel() self.application_proxy_model = ApplicationProxyModel(self.application_model) @@ -122,10 +121,6 @@ class MainApplication(QtWidgets.QApplication): self.main_window.priority_filter_changed.connect( self.on_priority_filter_changed ) - self.main_window.subject_filter_changed.connect(self.on_subject_filter_changed) - self.messages_proxy_model.unique_titles_updated.connect( - self.main_window.update_subject_filters - ) self.init_shortcuts() self.gotify_client.listen() @@ -216,9 +211,6 @@ class MainApplication(QtWidgets.QApplication): def on_priority_filter_changed(self, priorities: set[int]): self.messages_proxy_model.set_allowed_priorities(priorities) - def on_subject_filter_changed(self, titles: set[str]): - self.messages_proxy_model.set_allowed_titles(titles) - def abort_get_messages_task(self): """ Abort any tasks that will result in new messages getting appended to messages_model diff --git a/gotify_tray/gui/designs/widget_main.py b/gotify_tray/gui/designs/widget_main.py index 410d017..de3dfc6 100644 --- a/gotify_tray/gui/designs/widget_main.py +++ b/gotify_tray/gui/designs/widget_main.py @@ -77,9 +77,6 @@ class Ui_MainWindow(object): self.label_subject = QtWidgets.QLabel(parent=self.verticalLayoutWidget) self.label_subject.setObjectName("label_subject") self.filtersLayout.addWidget(self.label_subject) - self.pb_subject = QtWidgets.QPushButton(parent=self.verticalLayoutWidget) - self.pb_subject.setObjectName("pb_subject") - self.filtersLayout.addWidget(self.pb_subject) self.pb_remove_filters = QtWidgets.QPushButton(parent=self.verticalLayoutWidget) self.pb_remove_filters.setObjectName("pb_remove_filters") self.filtersLayout.addWidget(self.pb_remove_filters) @@ -109,7 +106,6 @@ class Ui_MainWindow(object): self.pb_high.setText(_translate("MainWindow", "HIGH")) self.pb_critical.setText(_translate("MainWindow", "CRITICAL")) self.label_subject.setText(_translate("MainWindow", "Subject:")) - self.pb_subject.setText(_translate("MainWindow", "Subject")) self.pb_remove_filters.setText(_translate("MainWindow", "Remove Filters")) diff --git a/gotify_tray/gui/designs/widget_main.ui b/gotify_tray/gui/designs/widget_main.ui index 5a05533..2ce2bdb 100644 --- a/gotify_tray/gui/designs/widget_main.ui +++ b/gotify_tray/gui/designs/widget_main.ui @@ -171,13 +171,6 @@ - - - - Subject - - - diff --git a/gotify_tray/gui/models/MessagesModel.py b/gotify_tray/gui/models/MessagesModel.py index 06079cc..a3bd71c 100644 --- a/gotify_tray/gui/models/MessagesModel.py +++ b/gotify_tray/gui/models/MessagesModel.py @@ -41,42 +41,14 @@ class MessagesModel(QtGui.QStandardItemModel): class MessagesProxyModel(QtCore.QSortFilterProxyModel): - unique_titles_updated = QtCore.pyqtSignal(set) - def __init__(self, parent=None): super().__init__(parent) self.allowed_priorities = set(range(11)) # 0-10 - self.allowed_titles = set() # empty means all - self.unique_titles = set() def set_allowed_priorities(self, priorities: set[int]): self.allowed_priorities = priorities self.invalidateFilter() - def set_allowed_titles(self, titles: set[str]): - print("Proxy setting allowed titles:", titles) - self.allowed_titles = titles - self.invalidateFilter() - - def update_unique_titles(self): - if not self.sourceModel(): - return - titles = set() - for row in range(self.sourceModel().rowCount()): - index = self.sourceModel().index(row, 0) - item = self.sourceModel().itemFromIndex(index) - message = item.data(MessageItemDataRole.MessageRole) - if message.title: - titles.add(message.title) - print("Unique titles found:", titles) - for row in range(self.sourceModel().rowCount()): - index = self.sourceModel().index(row, 0) - item = self.sourceModel().itemFromIndex(index) - message = item.data(MessageItemDataRole.MessageRole) - print(f"Message {row}: title={message.title}, priority={message.priority}") - self.unique_titles = titles - self.unique_titles_updated.emit(self.unique_titles) - def filterAcceptsRow( self, source_row: int, source_parent: QtCore.QModelIndex ) -> bool: @@ -86,10 +58,4 @@ class MessagesProxyModel(QtCore.QSortFilterProxyModel): priority = message.priority if message.priority is not None else 0 if self.allowed_priorities and priority not in self.allowed_priorities: return False - if ( - self.allowed_titles - and message.title is not None - and message.title not in self.allowed_titles - ): - return False return True diff --git a/gotify_tray/gui/widgets/MainWindow.py b/gotify_tray/gui/widgets/MainWindow.py index f3ef706..cce2e0e 100644 --- a/gotify_tray/gui/widgets/MainWindow.py +++ b/gotify_tray/gui/widgets/MainWindow.py @@ -28,7 +28,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): hidden = QtCore.pyqtSignal() activated = QtCore.pyqtSignal() priority_filter_changed = QtCore.pyqtSignal(set) - subject_filter_changed = QtCore.pyqtSignal(set) def __init__( self, @@ -100,10 +99,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): self.pb_critical.setChecked(True) self.pb_critical.setCheckable(False) - self.subject_menu = QtWidgets.QMenu(self.pb_subject) - self.pb_subject.setMenu(self.subject_menu) - self.subject_actions = {} - self.pb_remove_filters.clicked.connect(self.on_remove_filters_clicked) # set refresh shortcut (usually ctrl-r) @@ -280,32 +275,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): priorities.add(9) self.priority_filter_changed.emit(priorities) - def on_subject_action_toggled(self): - titles = set() - for title, action in self.subject_actions.items(): - if action.isChecked(): - titles.add(title) - print("Subject filter toggled, allowed titles:", titles) - self.subject_filter_changed.emit(titles) - def on_remove_filters_clicked(self): # Reset priority buttons self.pb_low.setChecked(True) self.pb_normal.setChecked(True) self.pb_high.setChecked(True) # Critical is always on - # Reset subject filters - self.messages_proxy_model.set_allowed_titles(set()) - for action in self.subject_actions.values(): - action.setChecked(True) - - def update_subject_filters(self, titles: set[str]): - print("Updating subject filters with titles:", titles) - self.subject_menu.clear() - self.subject_actions.clear() - for title in sorted(titles): - action = self.subject_menu.addAction(title) - action.setCheckable(True) - action.setChecked(True) - action.triggered.connect(self.on_subject_action_toggled) - self.subject_actions[title] = action