changeset 1349:273b044fde6d frontends_multi_profiles

quick_frontend: add a method getWidget to return a widget without creating it if it doesn't exist
author souliane <souliane@mailoo.org>
date Wed, 04 Mar 2015 14:17:38 +0100
parents a39d2db03c80
children 32ccda01a2be
files frontends/src/quick_frontend/quick_widgets.py
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_widgets.py	Tue Mar 03 22:17:57 2015 +0100
+++ b/frontends/src/quick_frontend/quick_widgets.py	Wed Mar 04 14:17:38 2015 +0100
@@ -93,6 +93,21 @@
         else:
             return widgets_map.itervalues()
 
+    def getWidget(self, class_, target, profile):
+        """Get a widget without creating it if it doesn't exist.
+
+        @param class_(class): class of the widget to create
+        @param target: target depending of the widget, usually a JID instance
+        @param profile (unicode): %(doc_profile)s
+        @return: a class_ instance or None if the widget doesn't exist
+        """
+        class_ = self.getRealClass(class_)
+        hash_ = class_.getWidgetHash(target, profile)
+        try:
+            return self._widgets[class_.__name__][hash_]
+        except KeyError:
+            return None
+
     def getOrCreateWidget(self, class_, target, *args, **kwargs):
         """Get an existing widget or create a new one when necessary