Fix room sorting for good

Do it the right way with a QSortFilterProxyModel.
This commit is contained in:
miruka
2019-05-06 13:07:00 -04:00
parent 0e5c5619cf
commit cdf6190cba
11 changed files with 178 additions and 70 deletions

View File

@@ -1,6 +1,6 @@
from typing import Any, Dict, List, Optional
from PyQt5.QtCore import QDateTime
from PyQt5.QtCore import QDateTime, QSortFilterProxyModel
from .list_item import ListItem
from .list_model import ListModel
@@ -20,24 +20,26 @@ class Room(ListItem):
_required_init_values = {"roomId", "displayName"}
_constant = {"roomId"}
roomId: str = ""
displayName: str = ""
topic: Optional[str] = None
typingUsers: List[str] = []
roomId: str = ""
displayName: str = ""
topic: Optional[str] = None
typingUsers: List[str] = []
lastEventDateTime: Optional[QDateTime] = None
inviter: Optional[Dict[str, str]] = None
leftEvent: Optional[Dict[str, str]] = None
class RoomCategory(ListItem):
_required_init_values = {"name", "rooms"}
_constant = {"rooms"}
_required_init_values = {"name", "rooms", "sortedRooms"}
_constant = {"rooms", "sortedRooms"}
name: str = ""
# Must be provided at init, else it will be the same object
# for every RoomCategory
rooms: ListModel = ListModel()
rooms: ListModel = ListModel()
sortedRooms: QSortFilterProxyModel = QSortFilterProxyModel()
class Account(ListItem):