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>2023-04-23 23:33:16 +0300
committerPhilipp Hörist <philipp@hoerist.com>2023-04-24 01:13:38 +0300
commit880030e22bf9395bc7391a05e01e9b3cef10bc81 (patch)
tree8d68ffef783c846e9360fcfeff24ad8a9f438b7d
parentc6ad7550db227b45c823bd9cebabed8b5cc58cbb (diff)
imprv: GroupchatRoster: Don’t show participants if roster size is bigimprv-roster
-rw-r--r--gajim/gtk/groupchat_roster.py19
1 files changed, 18 insertions, 1 deletions
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 = {}