diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-05-22 22:41:41 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2023-05-22 22:41:45 +0300 |
commit | 84fbaa870523f21516846a6282658a3c35b4ff6a (patch) | |
tree | 627040c409d3ab2beb3aa4187da3c080cd6ab6c9 | |
parent | e0a207a9b89b15815a054870b3d2816e1b2d0e86 (diff) |
imprv: ChatList: Clear row content when removing history
Fixes #11420
-rw-r--r-- | gajim/gtk/application.py | 3 | ||||
-rw-r--r-- | gajim/gtk/chat_list.py | 5 | ||||
-rw-r--r-- | gajim/gtk/chat_list_row.py | 7 | ||||
-rw-r--r-- | gajim/gtk/main.py | 6 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gajim/gtk/application.py b/gajim/gtk/application.py index c1068c711..45289999b 100644 --- a/gajim/gtk/application.py +++ b/gajim/gtk/application.py @@ -851,8 +851,9 @@ class GajimApplication(Gtk.Application, CoreApplication): ) -> None: def _remove() -> None: app.storage.archive.remove_history(params.account, params.jid) - control = app.window.get_control() + app.window.clear_chat_list_row(params.account, params.jid) + control = app.window.get_control() if not control.is_loaded(params.account, params.jid): return diff --git a/gajim/gtk/chat_list.py b/gajim/gtk/chat_list.py index 0c594e498..846e17e93 100644 --- a/gajim/gtk/chat_list.py +++ b/gajim/gtk/chat_list.py @@ -307,6 +307,11 @@ class ChatList(Gtk.ListBox, EventHelper): self.remove_chat(account, jid) self._emit_unread_changed() + def clear_chat_list_row(self, account: str, jid: JID) -> None: + chat = self._chats.get((account, jid)) + if chat is not None: + chat.clear() + def contains_chat(self, account: str, jid: JID) -> bool: return self._chats.get((account, jid)) is not None diff --git a/gajim/gtk/chat_list_row.py b/gajim/gtk/chat_list_row.py index 2542a6b80..4fc0220d9 100644 --- a/gajim/gtk/chat_list_row.py +++ b/gajim/gtk/chat_list_row.py @@ -248,6 +248,13 @@ class ChatListRow(Gtk.ListBoxRow): else: self.set_header(self._conversations_header) + def clear(self) -> None: + self.timestamp = 0 + self.stanza_id = None + self.message_id = None + self.set_message_text('') + self.set_nick('') + def set_message_id(self, message_id: str) -> None: self.message_id = message_id diff --git a/gajim/gtk/main.py b/gajim/gtk/main.py index f71b675be..101b1e347 100644 --- a/gajim/gtk/main.py +++ b/gajim/gtk/main.py @@ -993,6 +993,12 @@ class MainWindow(Gtk.ApplicationWindow, EventHelper): 'pm', select=select) + def clear_chat_list_row(self, account: str, jid: JID) -> None: + chat_list_stack = self._chat_page.get_chat_list_stack() + chat_list = chat_list_stack.find_chat(account, jid) + if chat_list is not None: + chat_list.clear_chat_list_row(account, jid) + def select_chat(self, account: str, jid: JID) -> None: self._app_side_bar.unselect_all() self._account_side_bar.unselect_all() |