diff options
author | Philipp Hörist <philipp@hoerist.com> | 2022-10-02 22:21:30 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2022-10-02 22:22:27 +0300 |
commit | 0453e01448ee98f651d00c29a0fa0e255bc97657 (patch) | |
tree | 9995b3526f069bcd97c09f835c8afadb9656f685 | |
parent | 3c1323e69311e0768646d44f10b847aaf83be77a (diff) |
refactor: ChatListRow: Add setter/getter methods for header type
-rw-r--r-- | gajim/gtk/chat_list.py | 12 | ||||
-rw-r--r-- | gajim/gtk/chat_list_row.py | 39 |
2 files changed, 26 insertions, 25 deletions
diff --git a/gajim/gtk/chat_list.py b/gajim/gtk/chat_list.py index 853ee1ceb..14412b854 100644 --- a/gajim/gtk/chat_list.py +++ b/gajim/gtk/chat_list.py @@ -457,20 +457,20 @@ class ChatList(Gtk.ListBox, EventHelper): def _header_func(row: ChatListRow, before: ChatListRow) -> None: if before is None: if row.is_pinned: - row.header = RowHeaderType.PINNED + row.set_header_type(RowHeaderType.PINNED) else: - row.header = None + row.set_header_type(None) else: if row.is_pinned: if before.is_pinned: - row.header = None + row.set_header_type(None) else: - row.header = RowHeaderType.PINNED + row.set_header_type(RowHeaderType.PINNED) else: if before.is_pinned: - row.header = RowHeaderType.CONVERSATIONS + row.set_header_type(RowHeaderType.CONVERSATIONS) else: - row.header = None + row.set_header_type(None) def _sort_func(self, row1: ChatListRow, row2: ChatListRow) -> int: if self._mouseover: diff --git a/gajim/gtk/chat_list_row.py b/gajim/gtk/chat_list_row.py index 00252932a..222a496a6 100644 --- a/gajim/gtk/chat_list_row.py +++ b/gajim/gtk/chat_list_row.py @@ -187,25 +187,6 @@ class ChatListRow(Gtk.ListBoxRow): self.show_all() @property - def header(self) -> Optional[RowHeaderType]: - header = self.get_header() - if header is None: - return None - assert isinstance(header, BaseHeader) - return header.type - - @header.setter - def header(self, type_: Optional[RowHeaderType]) -> None: - if type_ == self.header: - return - if type_ is None: - self.set_header(None) - elif type_ is RowHeaderType.PINNED: - self.set_header(self._pinned_label) - else: - self.set_header(self._conversations_label) - - @property def is_pinned(self) -> bool: return self._pinned @@ -227,6 +208,26 @@ class ChatListRow(Gtk.ListBoxRow): self._update_unread() self.emit('unread-changed') + def get_header_type(self) -> Optional[RowHeaderType]: + header = self.get_header() + if header is None: + return None + assert isinstance(header, BaseHeader) + return header.type + + def set_header_type(self, header_type: Optional[RowHeaderType]) -> None: + if header_type == self.get_header_type(): + return + + if header_type is None: + self.set_header(None) + + elif header_type == RowHeaderType.PINNED: + self.set_header(self._pinned_label) + + else: + self.set_header(self._conversations_label) + def set_message_id(self, message_id: str) -> None: self.message_id = message_id |