Merge branch 'application-order'

This commit is contained in:
dries.k
2023-08-17 23:25:00 +02:00
parent bc4c83b71c
commit b4accedd61
8 changed files with 49 additions and 13 deletions

View File

@@ -77,3 +77,22 @@ class ApplicationModel(QtGui.QStandardItemModel):
if item.data(ApplicationItemDataRole.ApplicationRole).id == appid:
return item
return None
class ApplicationProxyModel(QtCore.QSortFilterProxyModel):
def __init__(self, application_model: ApplicationModel) -> None:
super(ApplicationProxyModel, self).__init__()
self.setSourceModel(application_model)
self.setSortCaseSensitivity(QtCore.Qt.CaseSensitivity.CaseInsensitive)
if settings.value("ApplicationModel/sort", type=bool):
self.sort(0, QtCore.Qt.SortOrder.AscendingOrder)
def lessThan(self, left: QtCore.QModelIndex, right: QtCore.QModelIndex) -> bool:
"""Make sure ApplicationAllMessagesItem remains at the top of the model -- ApplicationAllMessagesItem doesn't have any ApplicationRole data
"""
if not self.sourceModel().data(left, ApplicationItemDataRole.ApplicationRole):
return True
elif not self.sourceModel().data(right, ApplicationItemDataRole.ApplicationRole):
return False
return super().lessThan(left, right)