diff --git a/src/backend/backend.py b/src/backend/backend.py index 48927ea5..b5c7ba3a 100644 --- a/src/backend/backend.py +++ b/src/backend/backend.py @@ -278,12 +278,12 @@ class Backend: room = self.models[user_id, "rooms"].get(room_id) if room: - account = self.models["accounts"][user_id] - account.total_unread -= room.unreads - account.total_mentions -= room.mentions + account = self.models["accounts"][user_id] + account.total_unread -= room.unreads + account.total_highlights -= room.highlights - room.mentions = 0 - room.unreads = 0 + room.highlights = 0 + room.unreads = 0 # General functions diff --git a/src/backend/matrix_client.py b/src/backend/matrix_client.py index f382f685..0c0a9fe8 100644 --- a/src/backend/matrix_client.py +++ b/src/backend/matrix_client.py @@ -1298,8 +1298,8 @@ class MatrixClient(nio.AsyncClient): last_event_date = last_event_date, - mentions = room.unread_highlights, - unreads = room.unread_notifications, + unreads = room.unread_notifications, + highlights = room.unread_highlights, ) self.models[self.user_id, "rooms"][room.room_id] = room_item diff --git a/src/backend/models/items.py b/src/backend/models/items.py index f3d310c3..89723d4e 100644 --- a/src/backend/models/items.py +++ b/src/backend/models/items.py @@ -32,15 +32,15 @@ class TypeSpecifier(AutoStrEnum): class Account(ModelItem): """A logged in matrix account.""" - id: str = field() - order: int = -1 - display_name: str = "" - avatar_url: str = "" - max_upload_size: int = 0 - profile_updated: datetime = ZeroDate - first_sync_done: bool = False - total_unread: int = 0 - total_mentions: int = 0 + id: str = field() + order: int = -1 + display_name: str = "" + avatar_url: str = "" + max_upload_size: int = 0 + profile_updated: datetime = ZeroDate + first_sync_done: bool = False + total_unread: int = 0 + total_highlights: int = 0 def __lt__(self, other: "Account") -> bool: """Sort by order, then by user ID.""" @@ -84,16 +84,17 @@ class Room(ModelItem): last_event_date: datetime = ZeroDate - mentions: int = 0 - unreads: int = 0 + unreads: int = 0 + highlights: int = 0 def __lt__(self, other: "Room") -> bool: - """Sort by membership, mentions/unread events, last event date, name. + """Sort by membership, highlights/unread events, last event date, name. Invited rooms are first, then joined rooms, then left rooms. Within these categories, sort by last event date (room with recent messages are first), then by display names, then account, but - keep rooms with mentions on top, followed by rooms with unread events. + keep rooms with highlights on top, + followed by rooms with unread events. """ # Left rooms may still have an inviter_id, so check left first. @@ -101,7 +102,7 @@ class Room(ModelItem): self.for_account, self.left, other.inviter_id, - bool(other.mentions), + bool(other.highlights), bool(other.unreads), other.last_event_date, (self.display_name or self.id).lower(), @@ -110,7 +111,7 @@ class Room(ModelItem): other.for_account, other.left, self.inviter_id, - bool(self.mentions), + bool(self.highlights), bool(self.unreads), self.last_event_date, (other.display_name or other.id).lower(), @@ -129,7 +130,7 @@ class AccountOrRoom(Account, Room): other.type is Account, self.left, other.inviter_id, - bool(other.mentions), + bool(other.highlights), bool(other.unreads), other.last_event_date, (self.display_name or self.id).lower(), @@ -140,7 +141,7 @@ class AccountOrRoom(Account, Room): self.type is Account, other.left, self.inviter_id, - bool(self.mentions), + bool(self.highlights), bool(self.unreads), self.last_event_date, (other.display_name or other.id).lower(), diff --git a/src/gui/MainPane/Account.qml b/src/gui/MainPane/Account.qml index edd52c26..1732d2e0 100644 --- a/src/gui/MainPane/Account.qml +++ b/src/gui/MainPane/Account.qml @@ -56,7 +56,7 @@ HTile { indicatorTheme: theme.mainPane.accountBar.account.unreadIndicator unreads: model.total_unread - mentions: model.total_mentions + highlights: model.total_highlights } } diff --git a/src/gui/MainPane/MessageIndicator.qml b/src/gui/MainPane/MessageIndicator.qml index c496d883..104ce29b 100644 --- a/src/gui/MainPane/MessageIndicator.qml +++ b/src/gui/MainPane/MessageIndicator.qml @@ -19,7 +19,7 @@ HLabel { background: Rectangle { color: - mentions ? + highlights ? indicatorTheme.mentionBackground : indicatorTheme.background @@ -31,7 +31,7 @@ HLabel { property QtObject indicatorTheme property int unreads: 0 - property int mentions: 0 + property int highlights: 0 Behavior on scale { HNumberAnimation {} } diff --git a/src/gui/MainPane/Room.qml b/src/gui/MainPane/Room.qml index a6eff71b..7a02d820 100644 --- a/src/gui/MainPane/Room.qml +++ b/src/gui/MainPane/Room.qml @@ -43,7 +43,7 @@ HTile { indicatorTheme: theme.mainPane.listView.room.unreadIndicator unreads: model.unreads - mentions: model.mentions + highlights: model.highlights } HIcon { diff --git a/src/gui/MainPane/RoomList.qml b/src/gui/MainPane/RoomList.qml index 98539447..237df1a8 100644 --- a/src/gui/MainPane/RoomList.qml +++ b/src/gui/MainPane/RoomList.qml @@ -140,8 +140,8 @@ HListView { showItemAtIndex(accountIndice[currentUserId] + 1 + index) } - function cycleUnreadRooms(forward=true, mentions=false) { - const prop = mentions ? "mentions" : "unreads" + function cycleUnreadRooms(forward=true, highlights=false) { + const prop = highlights ? "highlights" : "unreads" const start = currentIndex === -1 ? 0 : currentIndex let index = start @@ -151,7 +151,7 @@ HListView { if (index < 0) index = model.count - 1 if (index > model.count - 1) index = 0 - if (index === start && mentions) + if (index === start && highlights) return cycleUnreadRooms(forward, false) else if (index === start) return false