Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2022-10-02 22:21:30 +0300
committerPhilipp Hörist <philipp@hoerist.com>2022-10-02 22:22:27 +0300
commit0453e01448ee98f651d00c29a0fa0e255bc97657 (patch)
tree9995b3526f069bcd97c09f835c8afadb9656f685
parent3c1323e69311e0768646d44f10b847aaf83be77a (diff)
refactor: ChatListRow: Add setter/getter methods for header type
-rw-r--r--gajim/gtk/chat_list.py12
-rw-r--r--gajim/gtk/chat_list_row.py39
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