Philipp Hörist pushed to branch imprv-roster at gajim / gajim


Commits:
880030e2 by Philipp Hörist at 2023-04-24T00:13:38+02:00
imprv: GroupchatRoster: Don’t show participants if roster size is big

- - - - -


1 changed file:

- gajim/gtk/groupchat_roster.py


Changes:

=====================================
gajim/gtk/groupchat_roster.py
=====================================
@@ -100,6 +100,8 @@ def __init__(self) -> None:
         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 @@ def _visible_func(self,
                       ) -> 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 @@ def _load_roster(self) -> None:
         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 @@ def _unload_roster(self) -> None:
         self._store.clear()
         self.enable_sort(False)
 
+        self._is_big_roster = False
         self._contact_refs = {}
         self._group_refs = {}
 



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/880030e22bf9395bc7391a05e01e9b3cef10bc81

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/880030e22bf9395bc7391a05e01e9b3cef10bc81
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to