diff cagou/plugins/plugin_wid_chat.py @ 404:f7476818f9fb

core (common): JidSelector + behaviors various improvments: - renamed *Behaviour => *Behavior to be consistent with Kivy + moved to new "core.behaviors" modules - use a dedicated property in ContactItem for notification counter (which is now named "badge") - in JidSelector, well-known strings now create use a dedicated layout, add separator (except if new `add_separators` property is set to False), and are added to attribute of the same name - a new `item_class` property is now used to indicate the class to instanciate for items (by default it's a ContactItem) - FilterBahavior.do_filter now expect the parent layout instead of directly the children, this is to allow a FilterBahavior to manage several children layout at once (used with JidSelector) - core.utils has been removed, as the behavior there has been moved to core.behaviors
author Goffi <goffi@goffi.org>
date Wed, 12 Feb 2020 20:02:58 +0100
parents ae6f7fd1cb0e
children 03554ad70846
line wrap: on
line diff
--- a/cagou/plugins/plugin_wid_chat.py	Wed Feb 12 20:02:58 2020 +0100
+++ b/cagou/plugins/plugin_wid_chat.py	Wed Feb 12 20:02:58 2020 +0100
@@ -38,14 +38,14 @@
 from sat_frontends.quick_frontend import quick_chat
 from sat_frontends.tools import jid
 from cagou import G
-from cagou.core.constants import Const as C
-from cagou.core import cagou_widget
-from cagou.core import xmlui
-from cagou.core.image import Image
-from cagou.core.common import SymbolButton, JidButton
-from cagou.core.utils import FilterBehavior
-from cagou.core import menu
-from cagou.core.common import ContactButton
+from ..core.constants import Const as C
+from ..core import cagou_widget
+from ..core import xmlui
+from ..core.image import Image
+from ..core.common import SymbolButton, JidButton
+from ..core.behaviors import FilterBehavior
+from ..core import menu
+from ..core.common import ContactButton
 
 log = logging.getLogger(__name__)
 
@@ -949,14 +949,15 @@
 
     def onHeaderInputComplete(self, wid, text, **kwargs):
         """we filter items when text is entered in input box"""
-        self.do_filter(
-            self.jid_selector.children[0].children,
-            text,
-            # we append nick to jid to filter on both
-            lambda c: c.jid + c.data.get('nick', ''),
-            width_cb=lambda c: c.base_width,
-            height_cb=lambda c: c.minimum_height,
-            continue_tests=[lambda c: not isinstance(c, ContactButton)])
+        for layout in self.jid_selector.items_layouts:
+            self.do_filter(
+                layout,
+                text,
+                # we append nick to jid to filter on both
+                lambda c: c.jid + c.data.get('nick', ''),
+                width_cb=lambda c: c.base_width,
+                height_cb=lambda c: c.minimum_height,
+                continue_tests=[lambda c: not isinstance(c, ContactButton)])
 
 
 PLUGIN_INFO["factory"] = Chat.factory