X-Git-Url: http://git.onelab.eu/?p=sface.git;a=blobdiff_plain;f=sface%2Fmainwindow.py;h=f3115a52059b177eaebe68f14e63b7df14776380;hp=fcedbd004d12f9341efbab4aa59b2c453b4508d1;hb=ea028163f9ab1801b4b719a178184047531da5c1;hpb=7d7fc902c4b3a8df291292da526018dea66d20fd diff --git a/sface/mainwindow.py b/sface/mainwindow.py index fcedbd0..f3115a5 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(500, 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):