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"))