Mercurial > libervia-web
diff src/browser/libervia_main.py @ 683:801eb94aa869
browser side: versions management + version is shown in about dialog
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 19 Mar 2015 20:41:46 +0100 |
parents | a90cc8fc9605 |
children | 9877607c719a |
line wrap: on
line diff
--- a/src/browser/libervia_main.py Thu Mar 19 20:41:14 2015 +0100 +++ b/src/browser/libervia_main.py Thu Mar 19 20:41:46 2015 +0100 @@ -106,6 +106,8 @@ #FIXME: microblog cache should be managed directly in blog module self.mblog_cache = [] # used to keep our own blog entries in memory, to show them in new mblog panel + self._versions={} # SàT and Libervia versions cache + # self._selected_listeners = set() # FIXME: to be done with new listeners mechanism @property @@ -133,6 +135,39 @@ url = url[:-1] return url + @property + def sat_version(self): + return self._versions["sat"] + + @property + def libervia_version(self): + return self._versions["libervia"] + + def getVersions(self, callback=None): + """Ask libervia server for SàT and Libervia version and fill local cache + + @param callback: method to call when both versions have been received + """ + def gotVersion(): + if len(self._versions) == 2 and callback is not None: + callback() + + if len(self._versions) == 2: + # we already have versions in cache + gotVersion() + return + + def gotSat(version): + self._versions["sat"] = version + gotVersion() + + def gotLibervia(version): + self._versions["libervia"] = version + gotVersion() + + self.bridge.getVersion(callback=gotSat) + self.bridge.getLiberviaVersion(callback=gotLibervia, profile=None) # XXX: bridge direct call expect a profile, even for method with no profile needed + def registerSignal(self, functionName, handler=None, iface="core", with_profile=True): if handler is None: callback = getattr(self, "{}{}".format(functionName, "Handler"))