diff libervia.py @ 328:835a8ae799e7

Add notifications support, fixes bug 7.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sat, 23 Feb 2013 16:27:32 +0100
parents 36927be51481
children 629c99bbd031
line wrap: on
line diff
--- a/libervia.py	Tue Jan 07 23:49:39 2014 +0100
+++ b/libervia.py	Sat Feb 23 16:27:32 2013 +0100
@@ -35,6 +35,7 @@
 from browser_side.jid import JID
 from browser_side.xmlui import XMLUI
 from browser_side.tools import html_sanitize
+from browser_side.notification import Notification
 
 from sat_frontends.tools.misc import InputHistory
 from sat_frontends.tools.strings import getURLParams
@@ -180,6 +181,7 @@
         self.avatars_cache = {}  # keep track of jid's avatar hash (key=jid, value=file)
         self._register_box = None
         RootPanel().add(self.panel)
+        self.notification = Notification()
         DOM.addEventPreview(self)
         self._register = RegisterCall()
         self._register.call('registerParams', None)
@@ -305,6 +307,9 @@
             panel = self.tab_panel.tabBar.getTabWidget(tab_index)
         panel.addWidget(wid)
 
+    def displayNotification(self, title, body):
+        self.notification.notify(title, body)
+
     def _isRegisteredCB(self, registered):
         if not registered:
             self._register_box = RegisterBox(self.logged)
@@ -648,10 +653,11 @@
         _to = JID(to_jid)
         other = _to if _from.bare == self.whoami.bare else _from
         lib_wid = self.getLiberviaWidget(panels.ChatPanel, other, ignoreOtherTabs=False)
+        self.displayNotification(_from, msg)
         if lib_wid is not None:
             lib_wid.printMessage(_from, msg, extra)
         else:
-            # The message has not been showed, we must indicate it
+            # The message has not been shown, we must indicate it
             self.contact_panel.setContactMessageWaiting(other.bare, True)
 
     def _presenceUpdateCb(self, entity, show, priority, statuses):