work on status bar
authorBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Fri, 10 Sep 2010 13:36:41 +0000 (15:36 +0200)
committerBarış Metin <Talip-Baris.Metin@sophia.inria.fr>
Fri, 10 Sep 2010 13:36:41 +0000 (15:36 +0200)
sface/screens/configscreen.py
sface/screens/mainscreen.py
sface/screens/sfascreen.py
sface/sfawindow.py
sface/sficonfig.py

index 7cb6ace..3ea4cb8 100644 (file)
@@ -33,7 +33,7 @@ class ConfigWidget(QWidget):
         config.setUser("%s" % self.user.text())
         config.setSlice("%s" % self.slice.text())
         config.save_config()
         config.setUser("%s" % self.user.text())
         config.setSlice("%s" % self.slice.text())
         config.save_config()
-        self.parent().setStatus("<font color='green'>Configuration saved!</font>")
+        self.parent().setStatus("<font color='green'>Configuration saved!</font>", timeout=3000)
         
 
 class ConfigScreen(SfaScreen):
         
 
 class ConfigScreen(SfaScreen):
index fb0e99d..96ec7ed 100644 (file)
@@ -178,27 +178,27 @@ class SliceWidget(QWidget):
             self.updateView()
 
     def submit(self):
             self.updateView()
 
     def submit(self):
-        self.parent().setStatus("TODO: Submit not implemented yet!")
+        self.parent().setStatus("TODO: Submit not implemented yet!", 3000)
         
     def readSliceRSpec(self):
         
     def readSliceRSpec(self):
-        rspec_file = os.path.expanduser("~/.sfi/%s.rspec" % config.getSlice())
+        rspec_file = config.getSliceRSpecFile()
         xml = open(rspec_file).read()
         return xml
 
     def refresh(self, link=None):
         if not config.getSlice():
         xml = open(rspec_file).read()
         return xml
 
     def refresh(self, link=None):
         if not config.getSlice():
-            self.parent().setStatus("<font color='red'>Slice not set yet!</font>")
+            self.parent().setStatus("<font color='red'>Slice not set yet!</font>", timeout=None)
             return
 
         self.process = SfiProcess()
         outfile = self.process.getRSpecFromSM()
             return
 
         self.process = SfiProcess()
         outfile = self.process.getRSpecFromSM()
-        self.parent().setStatus("Updating slice data. This may take some time...")
+        self.parent().setStatus("Updating slice data. This may take some time...", timeout=None)
         
         self.connect(self.process, SIGNAL('finished()'), self.refreshFinished)
 
     def refreshFinished(self):
         del self.process
         
         self.connect(self.process, SIGNAL('finished()'), self.refreshFinished)
 
     def refreshFinished(self):
         del self.process
-        self.parent().setStatus("<font color='green'>Slice data updated.</font>")
+        self.parent().setStatus("<font color='green'>Slice data updated.</font>", timeout=5000)
         self.updateView()
 
     def updateView(self):
         self.updateView()
 
     def updateView(self):
index 3271f2d..d8d62e7 100644 (file)
@@ -28,5 +28,5 @@ class SfaScreen(QWidget):
     def getTitleText(self):
         return "<b>%s</b>" % self.title
 
     def getTitleText(self):
         return "<b>%s</b>" % self.title
 
-    def setStatus(self, msg):
-        self.mainwin.setStatus(msg)
+    def setStatus(self, msg, timeout):
+        self.mainwin.setStatus(msg, timeout)
index 84439a9..21f17c5 100644 (file)
@@ -1,7 +1,11 @@
 
 
+import os
+import time
+
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 
+from sface.sficonfig import config
 from sface.screens.configscreen import ConfigScreen
 from sface.screens.mainscreen import MainScreen
 
 from sface.screens.configscreen import ConfigScreen
 from sface.screens.mainscreen import MainScreen
 
@@ -30,12 +34,20 @@ class Status(QLabel):
     def __init__(self, parent=None):
         QLabel.__init__(self, "", parent)
 
     def __init__(self, parent=None):
         QLabel.__init__(self, "", parent)
 
-    def set(self, msg):
+    def set(self, msg, timeout):
         self.setText(msg)
         self.setText(msg)
-        QTimer.singleShot(3000, self, SLOT("clear()"))
+        if timeout:
+            QTimer.singleShot(timeout, self, SLOT("clear()"))
+
+    def sliceUpdateDate(self):
+        rspec_file = config.getSliceRSpecFile()
+        creation_time = os.stat(rspec_file).st_ctime
+        last_update = time.ctime(creation_time)
+        self.set(last_update, timeout=None)
 
     def clear(self):
 
     def clear(self):
-        self.setText("")
+#        self.setText("")
+        self.sliceUpdateDate()
 
 
 class SfaWindow(QWidget):
 
 
 class SfaWindow(QWidget):
@@ -81,5 +93,5 @@ class SfaWindow(QWidget):
         self.nav.setLink(self.config_screen.getLinkText())
         self.nav.setTitle(self.main_screen.getTitleText())
 
         self.nav.setLink(self.config_screen.getLinkText())
         self.nav.setTitle(self.main_screen.getTitleText())
 
-    def setStatus(self, msg):
-        self.status.set(msg)
+    def setStatus(self, msg, timeout):
+        self.status.set(msg, timeout)
index 595e892..2ff64e7 100644 (file)
@@ -75,5 +75,9 @@ class SfiConfig:
     def aggmgr(self):
         return SfiConfig.SFI_AM
 
     def aggmgr(self):
         return SfiConfig.SFI_AM
 
+    def getSliceRSpecFile(self):
+        return os.path.expanduser("~/.sfi/%s.rspec" % self.getSlice())
+        
+
 # configuration singleton
 config = SfiConfig()
 # configuration singleton
 config = SfiConfig()