initial commit
This commit is contained in:
41
gotify_tray/gui/ApplicationModel.py
Normal file
41
gotify_tray/gui/ApplicationModel.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from typing import Optional, Union
|
||||
from PyQt6 import QtCore, QtGui
|
||||
from gotify_tray import gotify
|
||||
|
||||
|
||||
class ApplicationModelItem(QtGui.QStandardItem):
|
||||
def __init__(
|
||||
self,
|
||||
application: gotify.GotifyApplicationModel,
|
||||
icon: Optional[QtGui.QIcon] = None,
|
||||
*args,
|
||||
**kwargs
|
||||
):
|
||||
super(ApplicationModelItem, self).__init__(application.name)
|
||||
self.application = application
|
||||
if icon:
|
||||
self.setIcon(icon)
|
||||
|
||||
|
||||
class ApplicationAllMessagesItem(QtGui.QStandardItem):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(ApplicationAllMessagesItem, self).__init__("ALL MESSAGES")
|
||||
|
||||
|
||||
class ApplicationModel(QtGui.QStandardItemModel):
|
||||
def setItem(self, row: int, column: int, item: Union[ApplicationModelItem, ApplicationAllMessagesItem]) -> None:
|
||||
super(ApplicationModel, self).setItem(row, column, item)
|
||||
|
||||
def itemFromIndex(
|
||||
self, index: QtCore.QModelIndex
|
||||
) -> Union[ApplicationModelItem, ApplicationAllMessagesItem]:
|
||||
return super(ApplicationModel, self).itemFromIndex(index)
|
||||
|
||||
def itemFromId(self, appid: int) -> Optional[ApplicationModelItem]:
|
||||
for row in range(self.rowCount()):
|
||||
item = self.item(row, 0)
|
||||
if not isinstance(item, ApplicationModelItem):
|
||||
continue
|
||||
if item.application.id == appid:
|
||||
return item
|
||||
return None
|
||||
Reference in New Issue
Block a user