source: internals/2016/linuxloginsmartcardwizard/trunk/proto1/w4pages.py @ 16541

Last change on this file since 16541 was 16541, checked in by dcorreia, 4 years ago

Added close event handler.

File size: 2.7 KB
Line 
1from PyQt5 import QtCore, QtGui, QtWidgets
2from PyQt5.QtWidgets import QMessageBox
3import welcome, checksystem, carduser, final
4
5
6class MyWizard(QtWidgets.QWizard):
7    def __init__(self):
8        super(MyWizard, self).__init__()
9        self.setObjectName("Wizard")
10        self.resize(600, 450)
11        self.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
12        self.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
13        self.setAutoFillBackground(True)
14        self.setSizeGripEnabled(False)
15        self.setModal(True)
16        self.customFont = QtGui.QFont()
17        self.customFont.setPointSize(10.5)
18        self.setFont(self.customFont)
19        self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
20        self.setOptions(QtWidgets.QWizard.HaveHelpButton |
21                        QtWidgets.QWizard.NoBackButtonOnLastPage |
22                        QtWidgets.QWizard.NoBackButtonOnStartPage |
23                        QtWidgets.QWizard.NoCancelButton |
24                        QtWidgets.QWizard.IndependentPages)
25        self.setTitleFormat(QtCore.Qt.AutoText)
26        self.setWindowTitle("SmartCard Login")
27
28        self.wizardPage1 = welcome.WelcomePage()
29        self.addPage(self.wizardPage1)
30
31        self.wizardPage2 = checksystem.SystemPage()
32        self.addPage(self.wizardPage2)
33
34        self.wizardPage3 = carduser.CardUserPage()
35        self.addPage(self.wizardPage3)
36
37        self.wizardPage4 = final.FinalPage()
38        self.addPage(self.wizardPage4)
39
40        self.messageBox = QtWidgets.QMessageBox()
41        self.helpRequested.connect(self.showHelp)
42
43    def showHelp(self):
44        message = self.currentPage().helpMessage
45        self.messageBox.information(self, "Help Dialog", message)
46
47    def closeEvent(self, QCloseEvent):
48        if self.currentId() != 3:
49            reply = self.messageBox.warning(self, "Title",  "\nAre you sure you want to close the wizard?\n\n"
50                                                            "You will lose all progress you currently have on \n"
51                                                            "the login configuration process.\n\n",
52                                                            QMessageBox.No, QMessageBox.Yes)
53            if reply == QMessageBox.Yes:
54                QCloseEvent.accept()
55            else:
56                QCloseEvent.ignore()
57        else:
58            QCloseEvent.accept()
59
60if __name__ == "__main__":
61    import sys
62    import os
63    if os.geteuid() != 0:
64        print("Script not started as root. Running sudo...")
65        args = ["sudo", sys.executable] + sys.argv + [os.environ]
66        os.execlpe("gksudo", *args)
67    print("Running with euid ", os.geteuid())
68
69    app = QtWidgets.QApplication(sys.argv)
70    ui = MyWizard()
71    ui.show()
72    sys.exit(app.exec_())
Note: See TracBrowser for help on using the repository browser.