diff options
author | wurstsalat <mailtrash@posteo.de> | 2022-09-30 00:01:19 +0300 |
---|---|---|
committer | wurstsalat <mailtrash@posteo.de> | 2022-09-30 00:01:58 +0300 |
commit | 81436bee717700bab968dc27f1ab6193509538c6 (patch) | |
tree | 289ca6b0531e785157759e7cc3016f633228df8e | |
parent | caec3515b229d5f8754694994f8dbeaae3d14ee5 (diff) |
perf: SearchView: Update calendar only if widget is visible
This avoids unnecessary database queries when switching chats
-rw-r--r-- | gajim/gtk/chat_page.py | 6 | ||||
-rw-r--r-- | gajim/gtk/search_view.py | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/gajim/gtk/chat_page.py b/gajim/gtk/chat_page.py index a1def675c..3d9ea6542 100644 --- a/gajim/gtk/chat_page.py +++ b/gajim/gtk/chat_page.py @@ -155,7 +155,10 @@ class ChatPage(Gtk.Box): jid: JID) -> None: self._chat_stack.show_chat(account, jid) - self._search_view.set_context(account, jid) + + if self._search_revealer.get_reveal_child(): + self._search_view.set_context(account, jid) + self.emit('chat-selected', workspace_id, account, jid) def _on_chat_unselected(self, _chat_list_stack: ChatListStack) -> None: @@ -170,7 +173,6 @@ class ChatPage(Gtk.Box): self._search_view.set_context(self._chat_control.contact.account, self._chat_control.contact.jid) - self._search_view.clear() self._search_revealer.set_reveal_child(True) self._search_view.set_focus() diff --git a/gajim/gtk/search_view.py b/gajim/gtk/search_view.py index 0768d2254..ae6d5e458 100644 --- a/gajim/gtk/search_view.py +++ b/gajim/gtk/search_view.py @@ -78,11 +78,10 @@ class SearchView(Gtk.Box): app.ged.register_event_handler('account-disabled', ged.GUI1, self._on_account_state) - self._update_calendar() self.show_all() def _on_account_state(self, _event: Any) -> None: - self.clear() + self._clear() @staticmethod def _header_func(row: ResultRow, before: ResultRow) -> None: @@ -100,9 +99,9 @@ class SearchView(Gtk.Box): def _on_hide_clicked(self, _button: Gtk.Button) -> None: self.emit('hide-search') - self.clear() + self._clear() - def clear(self) -> None: + def _clear(self) -> None: self._ui.search_entry.set_text('') self._clear_results() @@ -357,6 +356,8 @@ class SearchView(Gtk.Box): def set_focus(self) -> None: self._ui.search_entry.grab_focus() + self._clear() + self._update_calendar() def set_context(self, account: Optional[str], jid: Optional[JID]) -> None: self._account = account |