show selected nodes in slice.
[sface.git] / sface / sfawindow.py
index 4def49a..84439a9 100644 (file)
@@ -5,9 +5,40 @@ from PyQt4.QtGui import *
 from sface.screens.configscreen import ConfigScreen
 from sface.screens.mainscreen import MainScreen
 
+class Nav(QWidget):
+    def __init__(self, parent=None):
+        QWidget.__init__(self, parent)
+        
+        self.title = QLabel("", self)
+        self.link = QLabel("", self)
+        self.link.setAlignment(Qt.AlignRight)
+        
+        hlayout = QHBoxLayout()
+        hlayout.addWidget(self.title)
+        hlayout.addStretch()
+        hlayout.addWidget(self.link)
+        self.setLayout(hlayout)
+
+    def setTitle(self, title):
+        self.title.setText(title)
+
+    def setLink(self, link):
+        self.link.setText(link)
+
+
+class Status(QLabel):
+    def __init__(self, parent=None):
+        QLabel.__init__(self, "", parent)
+
+    def set(self, msg):
+        self.setText(msg)
+        QTimer.singleShot(3000, self, SLOT("clear()"))
+
+    def clear(self):
+        self.setText("")
+
 
 class SfaWindow(QWidget):
-    
     def __init__(self, parent=None):
         QWidget.__init__(self, parent)
 
@@ -18,22 +49,20 @@ class SfaWindow(QWidget):
         self.screens.addWidget(self.main_screen)
         self.screens.addWidget(self.config_screen)
 
-        self.title = QLabel(self.main_screen.getTitleText(), self)
-        self.switch = QLabel(self.config_screen.getLinkText(), self)
-        self.switch.setAlignment(Qt.AlignRight)
-        
-        hlayout = QHBoxLayout()
-        hlayout.addWidget(self.title)
-        hlayout.addStretch()
-        hlayout.addWidget(self.switch)
+        self.nav = Nav(self)
+        self.nav.setTitle(self.main_screen.getTitleText())
+        self.nav.setLink(self.config_screen.getLinkText())
+
+        self.status = Status(self)
 
         layout = QVBoxLayout()
-        layout.addLayout(hlayout)
+        layout.addWidget(self.nav)
         layout.addWidget(self.screens)
+        layout.addWidget(self.status)
         self.setLayout(layout)
         self.resize(800, 600)
 
-        self.connect(self.switch, SIGNAL('linkActivated(QString)'),
+        self.connect(self.nav.link, SIGNAL('linkActivated(QString)'),
                      self.toScreen)
 
     def toScreen(self, link):
@@ -44,13 +73,13 @@ class SfaWindow(QWidget):
 
     def toConfigScreen(self):
         self.screens.setCurrentWidget(self.config_screen)
-        self.switch.setText(self.main_screen.getLinkText())
-        self.title.setText(self.config_screen.getTitleText())
+        self.nav.setLink(self.main_screen.getLinkText())
+        self.nav.setTitle(self.config_screen.getTitleText())
 
     def toMainScreen(self):
         self.screens.setCurrentWidget(self.main_screen)
-        self.switch.setText(self.config_screen.getLinkText())
-        self.title.setText(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)