From 880030e22bf9395bc7391a05e01e9b3cef10bc81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sun, 23 Apr 2023 22:33:16 +0200 Subject: =?UTF-8?q?imprv:=20GroupchatRoster:=20Don=E2=80=99t=20show=20part?= =?UTF-8?q?icipants=20if=20roster=20size=20is=20big?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gajim/gtk/groupchat_roster.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gajim/gtk/groupchat_roster.py b/gajim/gtk/groupchat_roster.py index 08a7373c5..47aacf722 100644 --- a/gajim/gtk/groupchat_roster.py +++ b/gajim/gtk/groupchat_roster.py @@ -100,6 +100,8 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): self._modelfilter.set_visible_func(self._visible_func) self._roster.set_has_tooltip(True) + self._is_big_roster = False + self._ui.contact_column.set_fixed_width( app.settings.get('groupchat_roster_width')) self._ui.contact_column.set_cell_data_func(self._ui.text_renderer, @@ -222,6 +224,17 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): ) -> bool: if not self._filter_string: + if not self._is_big_roster: + return True + + if not model[iter_][Column.IS_CONTACT]: + return True + + group_iter = model.iter_parent(iter_) + assert group_iter is not None + group_name = model[group_iter][Column.NICK_OR_GROUP] + if group_name in ('participant', 'visitor'): + return False return True if not model[iter_][Column.IS_CONTACT]: @@ -539,10 +552,13 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): for participant in self._contact.get_participants(): self._add_contact(participant) + self._is_big_roster = self._get_total_user_count() > 100 + + self._ui.search_entry.set_text('') + self._modelfilter.refilter() self.enable_sort(True) self._roster.set_model(self._modelfilter) - self._ui.search_entry.set_text('') self._roster.expand_all() def _unload_roster(self) -> None: @@ -557,6 +573,7 @@ class GroupchatRoster(Gtk.Revealer, EventHelper): self._store.clear() self.enable_sort(False) + self._is_big_roster = False self._contact_refs = {} self._group_refs = {} -- cgit v1.2.3