""" Provider Info Page, used in First run Wizard """ import logging from PyQt4 import QtGui from leap.gui.constants import APP_LOGO, APP_WATERMARK from leap.util.translations import translate logger = logging.getLogger(__name__) class ProviderInfoPage(QtGui.QWizardPage): def __init__(self, parent=None): super(ProviderInfoPage, self).__init__(parent) self.setTitle(self.tr("Provider Information")) self.setSubTitle(self.tr( "Services offered by this provider")) self.setPixmap( QtGui.QWizard.WatermarkPixmap, QtGui.QPixmap(APP_WATERMARK)) 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 '' description_text = translate(desc) if desc else '' self.description.setText( "%s" % description_text) # XXX should translate this... enroll = pconfig.get('enrollment_policy') if enroll: self.enrollment_policy.setText( '%s: %s' % ( self.tr('enrollment policy'), enroll)) def nextId(self): wizard = self.wizard() next_ = "providersetupvalidation" return wizard.get_page_index(next_) def initializePage(self): self.show_provider_info()