Re-add local highlights similar to 0.5.0
This commit is contained in:
		| @@ -283,9 +283,10 @@ class Backend: | ||||
|         """ | ||||
|  | ||||
|         async def update(client: MatrixClient) -> None: | ||||
|             room = self.models[client.user_id, "rooms"].get(room_id) | ||||
|             room  = self.models[client.user_id, "rooms"].get(room_id) | ||||
|             local = room.local_unreads or room.local_highlights | ||||
|  | ||||
|             if room and room.unreads or room.highlights or room.local_unreads: | ||||
|             if room and room.unreads or room.highlights or local: | ||||
|                 room.unreads       = 0 | ||||
|                 room.highlights    = 0 | ||||
|                 room.local_unreads = False | ||||
|   | ||||
| @@ -1342,9 +1342,10 @@ class MatrixClient(nio.AsyncClient): | ||||
|     async def update_account_unread_counts(self) -> None: | ||||
|         """Recalculate total unread notifications/highlights for our account""" | ||||
|  | ||||
|         local_unreads = False | ||||
|         unreads       = 0 | ||||
|         highlights    = 0 | ||||
|         unreads          = 0 | ||||
|         highlights       = 0 | ||||
|         local_unreads    = False | ||||
|         local_highlights = False | ||||
|  | ||||
|         for room in self.models[self.user_id, "rooms"].values(): | ||||
|             unreads    += room.unreads | ||||
| @@ -1353,10 +1354,14 @@ class MatrixClient(nio.AsyncClient): | ||||
|             if room.local_unreads: | ||||
|                 local_unreads = True | ||||
|  | ||||
|             if room.local_highlights: | ||||
|                 local_highlights = True | ||||
|  | ||||
|         account                  = self.models["accounts"][self.user_id] | ||||
|         account.total_unread     = unreads | ||||
|         account.total_highlights = highlights | ||||
|         account.local_unreads    = local_unreads | ||||
|         account.local_highlights = local_highlights | ||||
|  | ||||
|  | ||||
|     async def event_is_past(self, ev: Union[nio.Event, Event]) -> bool: | ||||
| @@ -1405,11 +1410,13 @@ class MatrixClient(nio.AsyncClient): | ||||
|             last_event_date              = datetime.fromtimestamp(0) | ||||
|             typing_members               = [] | ||||
|             local_unreads                = False | ||||
|             local_highlights             = False | ||||
|             update_account_unread_counts = True | ||||
|         else: | ||||
|             last_event_date              = registered.last_event_date | ||||
|             typing_members               = registered.typing_members | ||||
|             local_unreads                = registered.local_unreads | ||||
|             local_highlights             = registered.local_highlights | ||||
|             update_account_unread_counts = ( | ||||
|                 registered.unreads != room.unread_notifications or | ||||
|                 registered.highlights != room.unread_highlights | ||||
| @@ -1452,9 +1459,10 @@ class MatrixClient(nio.AsyncClient): | ||||
|  | ||||
|             last_event_date = last_event_date, | ||||
|  | ||||
|             unreads       = room.unread_notifications, | ||||
|             highlights    = room.unread_highlights, | ||||
|             local_unreads = local_unreads, | ||||
|             unreads          = room.unread_notifications, | ||||
|             highlights       = room.unread_highlights, | ||||
|             local_unreads    = local_unreads, | ||||
|             local_highlights = local_highlights, | ||||
|         ) | ||||
|  | ||||
|         self.models[self.user_id, "rooms"][room.room_id] = room_item | ||||
| @@ -1632,4 +1640,7 @@ class MatrixClient(nio.AsyncClient): | ||||
|         room_item = self.models[self.user_id, "rooms"][room.room_id] | ||||
|         room_item.local_unreads = True | ||||
|  | ||||
|         if mentions_us: | ||||
|             room_item.local_highlights = True | ||||
|  | ||||
|         await self.update_account_unread_counts() | ||||
|   | ||||
| @@ -42,6 +42,7 @@ class Account(ModelItem): | ||||
|     total_unread:     int      = 0 | ||||
|     total_highlights: int      = 0 | ||||
|     local_unreads:    bool     = False | ||||
|     local_highlights: bool     = False | ||||
|  | ||||
|     def __lt__(self, other: "Account") -> bool: | ||||
|         """Sort by order, then by user ID.""" | ||||
| @@ -85,9 +86,10 @@ class Room(ModelItem): | ||||
|  | ||||
|     last_event_date: datetime = ZeroDate | ||||
|  | ||||
|     unreads:       int  = 0 | ||||
|     highlights:    int  = 0 | ||||
|     local_unreads: bool = False | ||||
|     unreads:          int  = 0 | ||||
|     highlights:       int  = 0 | ||||
|     local_unreads:    bool = False | ||||
|     local_highlights: bool = False | ||||
|  | ||||
|     def __lt__(self, other: "Room") -> bool: | ||||
|         """Sort by membership, highlights/unread events, last event date, name. | ||||
| @@ -105,6 +107,7 @@ class Room(ModelItem): | ||||
|             self.left, | ||||
|             other.inviter_id, | ||||
|             bool(other.highlights), | ||||
|             bool(other.local_highlights), | ||||
|             bool(other.unreads), | ||||
|             bool(other.local_unreads), | ||||
|             other.last_event_date, | ||||
| @@ -115,6 +118,7 @@ class Room(ModelItem): | ||||
|             other.left, | ||||
|             self.inviter_id, | ||||
|             bool(self.highlights), | ||||
|             bool(self.local_highlights), | ||||
|             bool(self.unreads), | ||||
|             bool(self.local_unreads), | ||||
|             self.last_event_date, | ||||
| @@ -135,6 +139,7 @@ class AccountOrRoom(Account, Room): | ||||
|             self.left, | ||||
|             other.inviter_id, | ||||
|             bool(other.highlights), | ||||
|             bool(other.local_highlights), | ||||
|             bool(other.unreads), | ||||
|             bool(other.local_unreads), | ||||
|             other.last_event_date, | ||||
| @@ -147,6 +152,7 @@ class AccountOrRoom(Account, Room): | ||||
|             other.left, | ||||
|             self.inviter_id, | ||||
|             bool(self.highlights), | ||||
|             bool(self.local_highlights), | ||||
|             bool(self.unreads), | ||||
|             bool(self.local_unreads), | ||||
|             self.last_event_date, | ||||
|   | ||||
| @@ -58,6 +58,7 @@ HTile { | ||||
|                 unreads: model.total_unread | ||||
|                 highlights: model.total_highlights | ||||
|                 localUnreads: model.local_unreads | ||||
|                 localHighlights: model.local_highlights | ||||
|             } | ||||
|  | ||||
|         } | ||||
|   | ||||
| @@ -22,7 +22,7 @@ HLabel { | ||||
|  | ||||
|     background: Rectangle { | ||||
|         color: | ||||
|             highlights ? | ||||
|             highlights || (! unreads && localUnreads && localHighlights) ? | ||||
|             indicatorTheme.mentionBackground : | ||||
|             indicatorTheme.background | ||||
|  | ||||
| @@ -36,6 +36,7 @@ HLabel { | ||||
|     property int unreads: 0 | ||||
|     property int highlights: 0 | ||||
|     property bool localUnreads: false | ||||
|     property bool localHighlights: false | ||||
|  | ||||
|  | ||||
|     Behavior on scale { HNumberAnimation {} } | ||||
|   | ||||
| @@ -48,6 +48,7 @@ HTile { | ||||
|                     unreads: model.unreads | ||||
|                     highlights: model.highlights | ||||
|                     localUnreads: model.local_unreads | ||||
|                     localHighlights: model.local_highlights | ||||
|                 } | ||||
|  | ||||
|                 HIcon { | ||||
|   | ||||
| @@ -361,7 +361,8 @@ Rectangle { | ||||
|             ( | ||||
|                 chat.roomInfo.unreads || | ||||
|                 chat.roomInfo.highlights || | ||||
|                 chat.roomInfo.local_unreads | ||||
|                 chat.roomInfo.local_unreads || | ||||
|                 chat.roomInfo.local_highlights | ||||
|             ) && | ||||
|             Qt.application.state === Qt.ApplicationActive && | ||||
|             (eventList.contentY + eventList.height) > -50 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	