""" Provider Info Page, used in First run Wizard """ import logging from PyQt4 import QtGui from leap.gui.constants import APP_LOGO logger = logging.getLogger(__name__) class ProviderInfoPage(QtGui.QWizardPage): def __init__(self, parent=None): super(ProviderInfoPage, self).__init__(parent) self.setTitle(self.tr("Provider Info")) self.setSubTitle(self.tr( "This is what provider says.")) self.setPixmap( QtGui.QWizard.LogoPixmap, QtGui.QPixmap(APP_LOGO)) self.create_info_panel() def create_info_panel(self): # Use stacked widget instead # of reparenting the layout. infoWidget = QtGui.QStackedWidget() info = QtGui.QWidget() layout = QtGui.QVBoxLayout() displayName = QtGui.QLabel("") description = QtGui.QLabel("") enrollment_policy = QtGui.QLabel("") # XXX set stylesheet... # prettify a little bit. # bigger fonts and so on... # We could use a QFrame here layout.addWidget(displayName) layout.addWidget(description) layout.addWidget(enrollment_policy) layout.addStretch(1) info.setLayout(layout) infoWidget.addWidget(info) pageLayout = QtGui.QVBoxLayout() pageLayout.addWidget(infoWidget) self.setLayout(pageLayout) # add refs to self to allow for # updates. # Watch out! Have to get rid of these references! # this should be better handled with signals !! self.displayName = displayName self.description = description self.description.setWordWrap(True) self.enrollment_policy = enrollment_policy def show_provider_info(self): # XXX get multilingual objects # directly from the config object lang = "en" pconfig = self.wizard().providerconfig dn = pconfig.get('name') display_name = dn[lang] if dn else '' domain_name = self.field('provider_domain') self.displayName.setText( "%s https://%s" % (display_name, domain_name)) desc = pconfig.get('description') description_text = desc[lang] if desc else '' self.description.setText( "%s" % description_text) enroll = pconfig.get('enrollment_policy') if enroll: self.enrollment_policy.setText( 'enrollment policy: %s' % enroll) def nextId(self): wizard = self.wizard() next_ = "providersetupvalidation" return wizard.get_page_index(next_) def initializePage(self): self.show_provider_info()