+++ /dev/null
-
-import os
-import time
-
-from PyQt4.QtCore import *
-from PyQt4.QtGui import *
-
-from sface.config import config
-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)
- self.sliceUpdateDate()
-
- def set(self, msg, timeout):
- self.setText(msg)
- if timeout:
- QTimer.singleShot(timeout, self.reset)
-
- def sliceUpdateDate(self):
- rspec_file = config.getSliceRSpecFile()
- if not os.path.exists(rspec_file):
- return
-
- creation_time = os.stat(rspec_file).st_ctime
- last_update = time.ctime(creation_time)
- self.set("Slice data last updated on %s" % last_update, timeout=None)
-
- def reset(self):
- self.setText("")
- QTimer.singleShot(1500, self.sliceUpdateDate)
-
-
-class SfaWindow(QWidget):
- def __init__(self, parent=None):
- QWidget.__init__(self, parent)
-
- self.config_screen = ConfigScreen(self)
- self.main_screen = MainScreen(self)
-
- self.screens = QStackedWidget(self)
- self.screens.addWidget(self.main_screen)
- self.screens.addWidget(self.config_screen)
-
- 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.addWidget(self.nav)
- layout.addWidget(self.screens)
- layout.addWidget(self.status)
- self.setLayout(layout)
- self.resize(800, 600)
-
- self.connect(self.nav.link, SIGNAL('linkActivated(QString)'),
- self.toScreen)
-
- def toScreen(self, link):
- if link == self.config_screen.name:
- self.toConfigScreen()
- elif link == self.main_screen.name:
- self.toMainScreen()
-
- def toConfigScreen(self):
- self.screens.setCurrentWidget(self.config_screen)
- self.nav.setLink(self.main_screen.getLinkText())
- self.nav.setTitle(self.config_screen.getTitleText())
-
- def toMainScreen(self):
- self.screens.setCurrentWidget(self.main_screen)
- self.nav.setLink(self.config_screen.getLinkText())
- self.nav.setTitle(self.main_screen.getTitleText())
-
- def setStatus(self, msg, timeout):
- self.status.set(msg, timeout)