def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MigrationUI() self.ui.setupUi(self) for s in availableScreens: print "SCREEN: ", s self.screens = availableScreens # filter(lambda s: s != None, availableScreens) #edited # print self.screens self.moveInc = 1 self.menuText = "" # self.config = KConfig("migrationrc") self.createWidget(self.screens) self.screenId = [] for each in self.screens: title = each.Widget().title title = i18n(title) self.screenId.append(title) if self.screens.index(each) == 0: self.menuText += self.putBold(title) else: self.menuText += self.putBr(title) self.ui.labelMenu.setText(self.menuText) QtCore.QObject.connect(self.ui.buttonNext, QtCore.SIGNAL("clicked()"), self.slotNext) QtCore.QObject.connect(self.ui.buttonBack, QtCore.SIGNAL("clicked()"), self.slotBack) QtCore.QObject.connect(self.ui.buttonFinish, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()")) QtCore.QObject.connect(self.ui.buttonCancel, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()"))
class Migration(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_MigrationUI() self.ui.setupUi(self) for s in availableScreens: print "SCREEN: ", s self.screens = availableScreens # filter(lambda s: s != None, availableScreens) #edited # print self.screens self.moveInc = 1 self.menuText = "" # self.config = KConfig("migrationrc") self.createWidget(self.screens) self.screenId = [] for each in self.screens: title = each.Widget().title title = i18n(title) self.screenId.append(title) if self.screens.index(each) == 0: self.menuText += self.putBold(title) else: self.menuText += self.putBr(title) self.ui.labelMenu.setText(self.menuText) QtCore.QObject.connect(self.ui.buttonNext, QtCore.SIGNAL("clicked()"), self.slotNext) QtCore.QObject.connect(self.ui.buttonBack, QtCore.SIGNAL("clicked()"), self.slotBack) QtCore.QObject.connect(self.ui.buttonFinish, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()")) QtCore.QObject.connect(self.ui.buttonCancel, QtCore.SIGNAL("clicked()"), QtGui.qApp, QtCore.SLOT("quit()")) def slotNext(self): self.menuText = "" currentIndex = self.ui.mainStack.currentIndex() + 1 for each in self.screenId: i = self.screenId.index(each) if currentIndex < len(self.screenId): if i == currentIndex: self.menuText += self.putBold(self.screenId[i]) else: self.menuText += self.putBr(self.screenId[i]) self.ui.labelMenu.setText(self.menuText) _widget = self.ui.mainStack.currentWidget() _return = _widget.execute() if _return[0]: self.stackMove(self.getCurrentStackId(self.moveInc)) self.moveInc = 1 elif not _return[0]: if not _return[1]: self.stackMove(self.getCurrentStackId(self.moveInc)) self.moveInc = 1 else: # kdeui.KMessageBox.error(self, _return[1]) edit QtGui.QMessageBox.critical(self, "Error", _return[1]) def slotBack(self): self.menuText = "" currentIndex = self.ui.mainStack.currentIndex() for each in self.screenId: i = self.screenId.index(each) if i <= len(self.screenId) and not i == 0: if i == currentIndex: self.menuText += self.putBold(self.screenId[i - 1]) else: self.menuText += self.putBr(self.screenId[i - 1]) self.menuText += self.putBr(self.screenId[i - 1]) self.ui.labelMenu.setText(self.menuText) _widget = self.ui.mainStack.currentWidget() _widget.backCheck() self.moveInc = 1 def enableNext(self): self.ui.buttonNext.setEnabled(True) def disableNext(self): self.ui.buttonNext.setEnabled(False) def enableBack(self): self.ui.buttonBack.setEnabled(True) def disableBack(self): self.ui.buttonBack.setEnabled(False) def isNextEnabled(self): return self.ui.buttonNext.isEnabled() def isBackEnabled(self): return self.ui.buttonBack.isEnabled() def putBr(self, item): return unicode("» ") + item + "<br>" def putBold(self, item): return "<b>" + unicode("» ") + item + "</b><br>" def getCurrentStackId(self, d): new = self.ui.mainStack.currentIndex() + d total = self.ui.mainStack.count() if new < 0: new = 0 if new > total: new = total return new def setCurrentStack(self, id=None): if id: self.stackMove(id) def createWidget(self, screens=[]): self.ui.mainStack.removeWidget(self.ui.page) for screen in screens: _screen = screen.Widget() self.ui.mainStack.addWidget(_screen) self.stackMove(0) def stackMove(self, id): if not id == self.ui.mainStack.currentIndex() or id == 0: self.ui.mainStack.setCurrentIndex(id) _widget = self.ui.mainStack.currentWidget() _widget.update() _widget.shown() if self.ui.mainStack.currentIndex() == len(self.screens) - 1: self.ui.buttonNext.hide() self.ui.buttonFinish.show() else: self.ui.buttonNext.show() self.ui.buttonFinish.hide() if self.ui.mainStack.currentIndex() == 0: self.ui.buttonBack.hide() else: self.ui.buttonBack.hide() self.ui.buttonBack.show() def __del__(self): pass