changeset 1442:6ce18c4e5708

quick_frontend: display over whole alerts counter
author souliane <souliane@mailoo.org>
date Mon, 20 Jul 2015 10:23:58 +0200
parents b4c49c234c6b
children 32d1089df687
files frontends/src/quick_frontend/quick_app.py frontends/src/quick_frontend/quick_contact_list.py
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/frontends/src/quick_frontend/quick_app.py	Tue Jul 14 16:49:29 2015 +0200
+++ b/frontends/src/quick_frontend/quick_app.py	Mon Jul 20 10:23:58 2015 +0200
@@ -278,6 +278,11 @@
         """widgets currently visible (must be implemented by frontend)"""
         raise NotImplementedError
 
+    @property
+    def alerts_count(self):
+        """Count the over whole alerts for all contact lists"""
+        return sum([len(clist._alerts) for clist in self.contact_lists.values()])
+
     def registerSignal(self, function_name, handler=None, iface="core", with_profile=True):
         """Register a handler for a signal
 
@@ -638,6 +643,12 @@
     def showAlert(self, message):
         pass  #FIXME
 
+    def updateAlertsCounter(self):
+        """Update the over whole alerts counter
+
+        """
+        pass
+
     def paramUpdateHandler(self, name, value, namespace, profile):
         log.debug(_(u"param update: [%(namespace)s] %(name)s = %(value)s") % {'namespace': namespace, 'name': name, 'value': value})
         if (namespace, name) == ("Connection", "JabberID"):
--- a/frontends/src/quick_frontend/quick_contact_list.py	Tue Jul 14 16:49:29 2015 +0200
+++ b/frontends/src/quick_frontend/quick_contact_list.py	Mon Jul 20 10:23:58 2015 +0200
@@ -272,6 +272,7 @@
         self._special_extras.clear()
         self._roster.clear()
         self._alerts.clear()
+        self.host.updateAlertsCounter()
         self.update()
 
     def setContact(self, entity, groups=None, attributes=None, in_roster=False):
@@ -466,6 +467,7 @@
         """
         self._alerts.add(entity)
         self.update()
+        self.host.updateAlertsCounter()
 
     def removeAlert(self, entity, use_bare_jid=True):
         """Eventually remove an alert on the entity (usually for a waiting message).
@@ -482,6 +484,7 @@
         else:
             self._alerts.discard(entity)
         self.update()
+        self.host.updateAlertsCounter()
 
     def _showOfflineContacts(self, show_str):
         self.showOfflineContacts(C.bool(show_str))