From: Barış Metin Date: Sat, 11 Sep 2010 01:46:22 +0000 (+0200) Subject: eye candy X-Git-Tag: sface-0.1-1~61 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=b09988e1840c80455eef1e745a4205b49c03d6d0 eye candy --- diff --git a/sface.py b/sface.py index d90c634..e6112cd 100644 --- a/sface.py +++ b/sface.py @@ -10,11 +10,6 @@ from sface.config import config def main(args): app = QApplication(args) - - win = MainWindow() - win.show() - win.setWindowTitle("Sface: SFA Interface") - app.setActiveWindow(win) app.setStyleSheet(''' QTreeView, QLineEdit { border: 2px solid gray; @@ -28,6 +23,12 @@ QLabel { } ''') + + win = MainWindow() + win.setWindowTitle("Sface: SFA Interface") + win.show() + app.setActiveWindow(win) + sys.exit(app.exec_()) diff --git a/sface/mainwindow.py b/sface/mainwindow.py index fcedbd0..46eb79e 100644 --- a/sface/mainwindow.py +++ b/sface/mainwindow.py @@ -53,17 +53,19 @@ class Status(QLabel): self.setText("") QTimer.singleShot(1500, self.sliceUpdateDate) - class MainWindow(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) + self.pix = QLabel(self) 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.screens.addWidget(self.pix) + self.next_screen = None self.nav = Nav(self) self.nav.setTitle(self.main_screen.getTitleText()) @@ -79,12 +81,34 @@ class MainWindow(QWidget): self.resize(800, 600) self.connect(self.nav.link, SIGNAL('linkActivated(QString)'), - self.toScreen) + self.animateToScreen) + + + def animatePixmap(self, y): + self.pix.move(0, y) - def toScreen(self, link): + def animateToScreen(self, link): if link == self.config_screen.name: - self.toConfigScreen() + self.next_screen = self.config_screen elif link == self.main_screen.name: + self.next_screen = self.main_screen + + pixmap = QPixmap(self.screens.size()) + self.screens.currentWidget().render(pixmap) + self.screens.setCurrentWidget(self.pix) + self.pix.setPixmap(pixmap) + + timeLine = QTimeLine(800, self) + timeLine.setFrameRange(0, self.screens.height()); + self.connect(timeLine, SIGNAL('frameChanged(int)'), self.animatePixmap) + self.connect(timeLine, SIGNAL('finished()'), self.toNextScreen) + timeLine.start() + + + def toNextScreen(self): + if self.next_screen == self.config_screen: + self.toConfigScreen() + elif self.next_screen == self.main_screen: self.toMainScreen() def toConfigScreen(self):