# HG changeset patch # User Goffi # Date 1484511692 -3600 # Node ID 34dfe0e32064e859cbec390b9605f88139f0d2ff # Parent 7631325e11f4c165dd98b98670fc9d29808e94c7 contact list: text entered in header input do filtering in shown contacts diff -r 7631325e11f4 -r 34dfe0e32064 src/cagou/plugins/plugin_wid_contact_list.kv --- a/src/cagou/plugins/plugin_wid_contact_list.kv Sun Jan 15 21:21:29 2017 +0100 +++ b/src/cagou/plugins/plugin_wid_contact_list.kv Sun Jan 15 21:21:32 2017 +0100 @@ -26,6 +26,7 @@ size_hint: None, 1 width: dp(60) Label: + id: jid_label padding: dp(5), 0 text: root.jid text_size: self.size diff -r 7631325e11f4 -r 34dfe0e32064 src/cagou/plugins/plugin_wid_contact_list.py --- a/src/cagou/plugins/plugin_wid_contact_list.py Sun Jan 15 21:21:29 2017 +0100 +++ b/src/cagou/plugins/plugin_wid_contact_list.py Sun Jan 15 21:21:32 2017 +0100 @@ -26,6 +26,7 @@ from kivy.uix.boxlayout import BoxLayout from kivy.uix.listview import ListView from kivy.adapters.listadapter import ListAdapter +from kivy.metrics import dp from kivy import properties from cagou.core import cagou_widget from cagou.core import image @@ -86,6 +87,18 @@ self.postInit() self.update() + def onHeaderInputComplete(self, wid, text): + # FIXME: this is implementation dependent, need to be done properly + items = self.children[0].children[0].children[0].children + + for item in items: + if text not in item.ids.jid_label.text: + item.height = 0 + item.opacity = 0 + else: + item.height = dp(50) + item.opacity = 1 + def contactDataConverter(self, idx, bare_jid): return {"jid": bare_jid, "data": self._items_cache[bare_jid]}