Compare commits
2 Commits
efdc63e1ab
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b3d9eb07f | ||
|
|
d0941fd7ab |
@@ -8,7 +8,7 @@ logo = "gotify_tray/gui/images/logo.ico" if platform.system() != "Darwin" else "
|
||||
|
||||
a = Analysis(['gotify_tray/__main__.py'],
|
||||
pathex=[os.getcwd()],
|
||||
binaries=[],
|
||||
binaries=[('/lib/x86_64-linux-gnu/libpython3.10.so', '.'), ('/lib/x86_64-linux-gnu/libpython3.10.so.1', '.')],
|
||||
datas=[('gotify_tray/gui/images', 'gotify_tray/gui/images'), ('gotify_tray/gui/themes', 'gotify_tray/gui/themes')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
|
||||
@@ -72,11 +72,11 @@ class Ui_MainWindow(object):
|
||||
self.pb_critical.setChecked(True)
|
||||
self.pb_critical.setObjectName("pb_critical")
|
||||
self.filtersLayout.addWidget(self.pb_critical)
|
||||
self.le_search = QtWidgets.QLineEdit(parent=self.verticalLayoutWidget)
|
||||
self.le_search.setObjectName("le_search")
|
||||
self.filtersLayout.addWidget(self.le_search)
|
||||
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
||||
self.filtersLayout.addItem(spacerItem2)
|
||||
self.label_subject = QtWidgets.QLabel(parent=self.verticalLayoutWidget)
|
||||
self.label_subject.setObjectName("label_subject")
|
||||
self.filtersLayout.addWidget(self.label_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)
|
||||
@@ -105,7 +105,7 @@ class Ui_MainWindow(object):
|
||||
self.pb_normal.setText(_translate("MainWindow", "NORMAL"))
|
||||
self.pb_high.setText(_translate("MainWindow", "HIGH"))
|
||||
self.pb_critical.setText(_translate("MainWindow", "CRITICAL"))
|
||||
self.label_subject.setText(_translate("MainWindow", "Subject:"))
|
||||
self.le_search.setPlaceholderText(_translate("MainWindow", "Search messages..."))
|
||||
self.pb_remove_filters.setText(_translate("MainWindow", "Remove Filters"))
|
||||
|
||||
|
||||
|
||||
@@ -151,6 +151,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_search">
|
||||
<property name="placeholderText">
|
||||
<string>Search messages...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
@@ -164,13 +171,6 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_subject">
|
||||
<property name="text">
|
||||
<string>Subject:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_remove_filters">
|
||||
<property name="text">
|
||||
|
||||
@@ -44,11 +44,16 @@ class MessagesProxyModel(QtCore.QSortFilterProxyModel):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.allowed_priorities = set(range(11)) # 0-10
|
||||
self.text_filter = ""
|
||||
|
||||
def set_allowed_priorities(self, priorities: set[int]):
|
||||
self.allowed_priorities = priorities
|
||||
self.invalidateFilter()
|
||||
|
||||
def set_text_filter(self, text: str):
|
||||
self.text_filter = text.lower()
|
||||
self.invalidateFilter()
|
||||
|
||||
def filterAcceptsRow(
|
||||
self, source_row: int, source_parent: QtCore.QModelIndex
|
||||
) -> bool:
|
||||
@@ -58,4 +63,9 @@ 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.text_filter:
|
||||
title = (message.title or "").lower()
|
||||
msg = message.message.lower()
|
||||
if self.text_filter not in title and self.text_filter not in msg:
|
||||
return False
|
||||
return True
|
||||
|
||||
@@ -100,6 +100,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.pb_critical.setCheckable(False)
|
||||
|
||||
self.pb_remove_filters.clicked.connect(self.on_remove_filters_clicked)
|
||||
self.le_search.returnPressed.connect(self.on_search_return_pressed)
|
||||
|
||||
# set refresh shortcut (usually ctrl-r)
|
||||
# unfortunately this cannot be done with designer
|
||||
@@ -281,3 +282,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.pb_normal.setChecked(True)
|
||||
self.pb_high.setChecked(True)
|
||||
# Critical is always on
|
||||
# Clear search
|
||||
self.le_search.clear()
|
||||
self.messages_proxy_model.set_text_filter("")
|
||||
|
||||
def on_search_return_pressed(self):
|
||||
text = self.le_search.text()
|
||||
self.messages_proxy_model.set_text_filter(text)
|
||||
|
||||
Reference in New Issue
Block a user