# HG changeset patch # User souliane # Date 1452617678 -3600 # Node ID d678b723460b834fc85454cfe8d3e126e930afba # Parent 104874018ab0e0a6bdd2cdeff88bd373dd7c0f53 quick_frontend, primitivus: mechanism to signal a new message reception when the window is hidden (even if the message is actually displayed): - for now this is only used by Libervia diff -r 104874018ab0 -r d678b723460b frontends/src/primitivus/primitivus --- a/frontends/src/primitivus/primitivus Tue Jan 12 17:52:17 2016 +0100 +++ b/frontends/src/primitivus/primitivus Tue Jan 12 17:54:38 2016 +0100 @@ -479,6 +479,13 @@ else: del self._early_popup + def isHidden(self): + """Tells if the frontend window is hidden. + + @return bool + """ + return False # FIXME: implement when necessary + def alert(self, title, message): """Shortcut method to create an alert message diff -r 104874018ab0 -r d678b723460b frontends/src/quick_frontend/quick_app.py --- a/frontends/src/quick_frontend/quick_app.py Tue Jan 12 17:52:17 2016 +0100 +++ b/frontends/src/quick_frontend/quick_app.py Tue Jan 12 17:54:38 2016 +0100 @@ -516,7 +516,10 @@ if isinstance(widget, quick_chat.QuickChat) and widget.manageMessage(from_jid, type_): visible = True break - if not visible: + if visible: + if self.isHidden(): # the window is hidden + self.updateAlertsCounter(extra_inc=1) + else: contact_list.addAlert(from_jid.bare if type_ == C.MESS_TYPE_GROUPCHAT else from_jid) def sendMessage(self, to_jid, message, subject='', mess_type="auto", extra={}, callback=None, errback=None, profile_key=C.PROF_KEY_NONE): @@ -701,9 +704,17 @@ """Callback used when an action result in a progress id""" log.info(u"Progress ID received: {}".format(progress_id)) - def updateAlertsCounter(self): - """Update the over whole alerts counter + def isHidden(self): + """Tells if the frontend window is hidden. + @return bool + """ + raise NotImplementedError + + def updateAlertsCounter(self, extra_inc=0): + """Update the over whole alerts counter. + + @param extra_inc (int): extra counter """ pass