summaryrefslogtreecommitdiff
path: root/src/leap/gui/firstrunwizard.py
diff options
context:
space:
mode:
authorkali <kali@leap.se>2012-10-04 01:02:08 +0900
committerkali <kali@leap.se>2012-10-04 01:02:08 +0900
commitdfd4ed8e7f20376756f83a1b42211c40d13cd873 (patch)
tree30f3bb6d09425fbe6686cfee9f43d9120680bb86 /src/leap/gui/firstrunwizard.py
parent7a58425cbb090acb3777b602bd3350581f7b30e8 (diff)
initial skeleton for wizard
Diffstat (limited to 'src/leap/gui/firstrunwizard.py')
-rwxr-xr-xsrc/leap/gui/firstrunwizard.py191
1 files changed, 191 insertions, 0 deletions
diff --git a/src/leap/gui/firstrunwizard.py b/src/leap/gui/firstrunwizard.py
new file mode 100755
index 00000000..25f0a769
--- /dev/null
+++ b/src/leap/gui/firstrunwizard.py
@@ -0,0 +1,191 @@
+#!/usr/bin/env python
+# This is only needed for Python v2 but is harmless for Python v3.
+import sip
+sip.setapi('QString', 2)
+sip.setapi('QVariant', 2)
+
+from PyQt4 import QtGui
+
+# XXX change and use some other stuff.
+import firstrunwizard_rc
+
+
+class FirstRunWizard(QtGui.QWizard):
+ def __init__(self, parent=None, providers=None):
+ super(FirstRunWizard, self).__init__(parent)
+
+ if not providers:
+ providers = ('springbok',)
+ self.providers = providers
+
+ self.addPage(IntroPage())
+ self.addPage(SelectProviderPage(providers=providers))
+
+ self.addPage(RegisterUserPage(wizard=self))
+ #self.addPage(GlobalEIPSettings())
+ self.addPage(LastPage())
+
+ self.setPixmap(
+ QtGui.QWizard.BannerPixmap,
+ QtGui.QPixmap(':/images/banner.png'))
+ self.setPixmap(
+ QtGui.QWizard.BackgroundPixmap,
+ QtGui.QPixmap(':/images/background.png'))
+
+ self.setWindowTitle("First Run Wizard")
+
+ def accept(self):
+ print 'chosen provider: ', self.get_provider()
+ print 'username: ', self.field('userName')
+ print 'password: ', self.field('userPassword')
+ print 'remember password: ', self.field('rememberPassword')
+ super(FirstRunWizard, self).accept()
+ # XXX we should emit a completed signal here...
+ # and pass a dict with options
+ # XXX unless one exists by default...
+
+ def get_provider(self):
+ provider = self.field('provider_index')
+ return self.providers[provider]
+
+
+class IntroPage(QtGui.QWizardPage):
+ def __init__(self, parent=None):
+ super(IntroPage, self).__init__(parent)
+
+ self.setTitle("First run wizard.")
+ self.setPixmap(
+ QtGui.QWizard.WatermarkPixmap,
+ QtGui.QPixmap(':/images/watermark1.png'))
+
+ label = QtGui.QLabel(
+ "Now we will guide you through "
+ "some configuration that is needed before you "
+ "connect for the first time.<br><br>"
+ "If you ever need to modify this options again, "
+ "you can access from the '<i>Settings</i>' menu in the "
+ "main window of the app.")
+ label.setWordWrap(True)
+
+ layout = QtGui.QVBoxLayout()
+ layout.addWidget(label)
+ self.setLayout(layout)
+
+
+class SelectProviderPage(QtGui.QWizardPage):
+ def __init__(self, parent=None, providers=None):
+ super(SelectProviderPage, self).__init__(parent)
+
+ self.setTitle("Select Provider")
+ self.setSubTitle(
+ "Please select which provider do you want "
+ "to use for your connection."
+ )
+ self.setPixmap(
+ QtGui.QWizard.LogoPixmap,
+ QtGui.QPixmap(':/images/logo1.png'))
+
+ providerNameLabel = QtGui.QLabel("&Provider:")
+
+ providercombo = QtGui.QComboBox()
+ if providers:
+ for provider in providers:
+ providercombo.addItem(provider)
+ providerNameSelect = providercombo
+
+ providerNameLabel.setBuddy(providerNameSelect)
+
+ self.registerField('provider_index', providerNameSelect)
+
+ layout = QtGui.QGridLayout()
+ layout.addWidget(providerNameLabel, 0, 0)
+ layout.addWidget(providerNameSelect, 0, 1)
+ self.setLayout(layout)
+
+
+class RegisterUserPage(QtGui.QWizardPage):
+ def __init__(self, parent=None, wizard=None):
+ super(RegisterUserPage, self).__init__(parent)
+
+ # XXX check for no wizard pased
+ # getting provider from previous step
+ provider = wizard.get_provider()
+
+ self.setTitle("User registration")
+ self.setSubTitle(
+ "Register a new user with provider %s." %
+ provider)
+ self.setPixmap(
+ QtGui.QWizard.LogoPixmap,
+ QtGui.QPixmap(':/images/logo2.png'))
+
+ rememberPasswordCheckBox = QtGui.QCheckBox(
+ "&Remember password.")
+ rememberPasswordCheckBox.setChecked(True)
+
+ userNameLabel = QtGui.QLabel("User &name:")
+ self.userNameLineEdit = QtGui.QLineEdit()
+ userNameLabel.setBuddy(self.userNameLineEdit)
+
+ userPasswordLabel = QtGui.QLabel("&Password:")
+ self.userPasswordLineEdit = QtGui.QLineEdit()
+ self.userPasswordLineEdit.setEchoMode(
+ QtGui.QLineEdit.Password)
+
+ userPasswordLabel.setBuddy(self.userPasswordLineEdit)
+
+ self.registerField('userName', self.userNameLineEdit)
+ self.registerField('userPassword', self.userPasswordLineEdit)
+ self.registerField('rememberPassword', rememberPasswordCheckBox)
+
+ layout = QtGui.QGridLayout()
+ layout.setColumnMinimumWidth(0, 20)
+
+ layout.addWidget(userNameLabel, 0, 0)
+ layout.addWidget(self.userNameLineEdit, 0, 3)
+
+ layout.addWidget(userPasswordLabel, 1, 0)
+ layout.addWidget(self.userPasswordLineEdit, 1, 3)
+
+ layout.addWidget(rememberPasswordCheckBox, 2, 3, 2, 4)
+ self.setLayout(layout)
+
+ # XXX how to validatioN ----
+
+ def initializePage(self):
+ pass
+
+
+class LastPage(QtGui.QWizardPage):
+ def __init__(self, parent=None):
+ super(LastPage, self).__init__(parent)
+
+ self.setTitle("Ready to go!")
+ self.setPixmap(
+ QtGui.QWizard.WatermarkPixmap,
+ QtGui.QPixmap(':/images/watermark2.png'))
+
+ self.label = QtGui.QLabel()
+ self.label.setWordWrap(True)
+
+ layout = QtGui.QVBoxLayout()
+ layout.addWidget(self.label)
+ self.setLayout(layout)
+
+ def initializePage(self):
+ finishText = self.wizard().buttonText(
+ QtGui.QWizard.FinishButton)
+ finishText = finishText.replace('&', '')
+ self.label.setText(
+ "Click '<i>%s</i>' to end the wizard and start "
+ "encrypting your connection." % finishText)
+
+
+if __name__ == '__main__':
+
+ import sys
+
+ app = QtGui.QApplication(sys.argv)
+ wizard = FirstRunWizard()
+ wizard.show()
+ sys.exit(app.exec_())