Ejemplo n.º 1
0
    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()"))
Ejemplo n.º 2
0
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