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
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user