+ self.next_screen = self.main_screen
+ elif link == self.help_screen.name:
+ self.next_screen = self.help_screen
+
+ curr_screen = self.screens.currentWidget()
+
+ if self.next_screen == curr_screen:
+ self.setStatus("Already showing %s" % curr_screen.getTitleText(), timeout=1000)
+ return
+
+ # This is an optimization to have a smoother animation. We
+ # render the widget into a pixmap and animate that instead of
+ # moving the whole widget around.
+ pixmap = QPixmap(self.screens.size())
+ curr_screen.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: