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:
authorwurstsalat <mailtrash@posteo.de>2023-05-22 22:41:41 +0300
committerwurstsalat <mailtrash@posteo.de>2023-05-22 22:41:45 +0300
commit84fbaa870523f21516846a6282658a3c35b4ff6a (patch)
tree627040c409d3ab2beb3aa4187da3c080cd6ab6c9
parente0a207a9b89b15815a054870b3d2816e1b2d0e86 (diff)
imprv: ChatList: Clear row content when removing history
Fixes #11420
-rw-r--r--gajim/gtk/application.py3
-rw-r--r--gajim/gtk/chat_list.py5
-rw-r--r--gajim/gtk/chat_list_row.py7
-rw-r--r--gajim/gtk/main.py6
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()