def __init__(self): QWidget.__init__(self) self.ui = Ui_DateTimeWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.from_time_updater = True self.is_date_changed = False self.current_zone = "" self.tz_dict = {} self.continents = [] self.countries = [] for country, data in yali.localedata.locales.items(): if country == ctx.lang: if data.has_key("timezone"): ctx.installData.timezone = data["timezone"] # Append continents and countries the time zone dictionary self.createTZDictionary() # Sort continent list self.sortContinents() # Append sorted continents to combobox self.loadContinents() # Load current continents country list self.getCountries(self.current_zone["continent"]) # Highlight the current zone self.index = self.ui.continentList.findText( self.current_zone["continent"]) self.ui.continentList.setCurrentIndex(self.index) self.index = self.ui.countryList.findText(self.current_zone["country"]) self.ui.countryList.setCurrentIndex(self.index) # Initialize widget signal and slots self.__initSignals__() self.ui.calendarWidget.setDate(QDate.currentDate()) self.pthread = None self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.timer.start(1000) ctx.mainScreen.currentLanguageChanged.connect(self.retranslateUi) ctx.mainScreen.currentLanguageChanged.connect(self.changeCountry) ctx.mainScreen.currentLanguageChanged.connect(self.updateClock) self.ui.countryList.currentIndexChanged[int].connect( self.setWidgetDateTime)
def __init__(self): QWidget.__init__(self) self.ui = Ui_RootPassWidget() self.ui.setupUi(self) self.intf = ctx.interface self.host_valid = True self.pass_valid = False if ctx.flags.install_type == ctx.STEP_DEFAULT: self.pthread = PThread(self, self.startInit, self.dummy) self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.ui.pass1.textChanged[str].connect(self.slotTextChanged) self.ui.pass2.textChanged[str].connect(self.slotTextChanged) self.ui.pass2.returnPressed.connect(self.slotReturnPressed) self.ui.hostname.textChanged[str].connect(self.slotHostnameChanged)
def __init__(self): QWidget.__init__(self) self.ui = Ui_RootPassWidget() self.ui.setupUi(self) self.intf = ctx.interface self.host_valid = True self.pass_valid = False if ctx.flags.install_type in [ctx.STEP_DEFAULT, ctx.STEP_LIVE]: self.pthread = PThread(self, self.startInit, self.dummy) self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.connect(self.ui.pass1, SIGNAL("textChanged(const QString &)"), self.slotTextChanged) self.connect(self.ui.pass2, SIGNAL("textChanged(const QString &)"), self.slotTextChanged) self.connect(self.ui.pass2, SIGNAL("returnPressed()"), self.slotReturnPressed) self.connect(self.ui.hostname, SIGNAL("textChanged(const QString &)"), self.slotHostnameChanged)
def __init__(self): QWidget.__init__(self) self.ui = Ui_DateTimeWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.from_time_updater = True self.is_date_changed = False self.current_zone = "" self.tz_dict = {} self.continents = [] self.countries = [] for country, data in yali.localedata.locales.items(): if country == ctx.consts.lang: if data.has_key("timezone"): ctx.installData.timezone = data["timezone"] # Append continents and countries the time zone dictionary self.createTZDictionary() # Sort continent list self.sortContinents() # Append sorted continents to combobox self.loadContinents() # Load current continents country list self.getCountries(self.current_zone["continent"]) # Highlight the current zone self.index = self.ui.continentList.findText(self.current_zone["continent"]) self.ui.continentList.setCurrentIndex(self.index) self.index = self.ui.countryList.findText(self.current_zone["country"]) self.ui.countryList.setCurrentIndex(self.index) # Initialize widget signal and slots self.__initSignals__() self.ui.calendarWidget.setDate(QDate.currentDate()) self.pthread = None self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.timer.start(1000)
class Widget(QWidget, ScreenWidget): name = "timeSetup" def __init__(self): QWidget.__init__(self) self.ui = Ui_DateTimeWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.from_time_updater = True self.is_date_changed = False self.current_zone = "" self.tz_dict = {} self.continents = [] self.countries = [] for country, data in yali.localedata.locales.items(): if country == ctx.consts.lang: if data.has_key("timezone"): ctx.installData.timezone = data["timezone"] # Append continents and countries the time zone dictionary self.createTZDictionary() # Sort continent list self.sortContinents() # Append sorted continents to combobox self.loadContinents() # Load current continents country list self.getCountries(self.current_zone["continent"]) # Highlight the current zone self.index = self.ui.continentList.findText(self.current_zone["continent"]) self.ui.continentList.setCurrentIndex(self.index) self.index = self.ui.countryList.findText(self.current_zone["country"]) self.ui.countryList.setCurrentIndex(self.index) # Initialize widget signal and slots self.__initSignals__() self.ui.calendarWidget.setDate(QDate.currentDate()) self.pthread = None self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.timer.start(1000) def __initSignals__(self): self.ui.timeEdit.timeChanged[QTime].connect(self.timerStop) self.ui.calendarWidget.dateChanged.connect(self.dateChanged) self.timer.timeout.connect(self.updateClock) self.ui.continentList.activated[str].connect(self.getCountries) def createTZDictionary(self): tz = TimeZoneList() zones = [ x.timeZone for x in tz.getEntries() ] zones.sort() for zone in zones: split = zone.split("/") # Human readable continent names continent_pretty_name = split[0].replace("_", " ") continent_pretty_name = continent_pretty_name # Some country names can be like Argentina/Catamarca so this fixes the splitting problem # caused by zone.split("/") # # Remove continent info and take the rest as the country name split.pop(0) country_pretty_name = " / ".join(split) # Human readable country names country_pretty_name = country_pretty_name.replace("_", " ") # Get current zone if zone == ctx.installData.timezone: self.current_zone = { "continent":continent_pretty_name, "country":country_pretty_name} # Append to dictionary if self.tz_dict.has_key(continent_pretty_name): self.tz_dict[continent_pretty_name].append([country_pretty_name, zone]) else: self.tz_dict[continent_pretty_name] = [[country_pretty_name, zone]] def sortContinents(self): for continent in self.tz_dict.keys(): self.continents.append(continent) self.continents.sort() def loadContinents(self): for continent in self.continents: self.ui.continentList.addItem(continent) def getCountries(self, continent): # Countries of the selected continent countries = self.tz_dict[str(continent)] self.ui.countryList.clear() for country, zone in countries: self.ui.countryList.addItem(country, zone) self.countries.append(country) def dateChanged(self): self.is_date_changed = True def timerStop(self): if self.from_time_updater: return # Human action detected; stop the timer. self.timer.stop() def updateClock(self): # What time is it ? cur = QTime.currentTime() self.from_time_updater = True self.ui.timeEdit.setTime(cur) self.from_time_updater = False def shown(self): self.timer.start(1000) if ctx.flags.install_type == ctx.STEP_BASE: self.pthread = PThread(self, self.startInit, self.dummy) def dummy(self): pass def setTime(self): ctx.interface.informationWindow.update(_("Adjusting time settings")) date = self.ui.calendarWidget.date() time = self.ui.timeEdit.time() args = "%02d%02d%02d%02d%04d.%02d" % (date.month(), date.day(), time.hour(), time.minute(), date.year(), time.second()) # Set current date and time ctx.logger.debug("Date/Time setting to %s" % args) yali.util.run_batch("date", [args]) # Sync date time with hardware ctx.logger.debug("YALI's time is syncing with the system.") yali.util.run_batch("hwclock", ["--systohc"]) ctx.interface.informationWindow.hide() def execute(self): if not self.timer.isActive() or self.is_date_changed: QTimer.singleShot(500, self.setTime) self.timer.stop() index = self.ui.countryList.currentIndex() ctx.installData.timezone = self.ui.countryList.itemData(index) ctx.logger.debug("Time zone selected as %s " % ctx.installData.timezone) if ctx.flags.install_type == ctx.STEP_BASE: #FIXME:Refactor hacky code ctx.installData.rootPassword = ctx.consts.default_password ctx.installData.hostName = yali.util.product_release() if ctx.storageInitialized: disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 return True else: self.pds_messagebox.setMessage(_("Storage Devices initialising...")) self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) ctx.mainScreen.step_increment = 0 self.pthread.start() QTimer.singleShot(2, self.startStorageInitialize) return False return True def startInit(self): self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) def startStorageInitialize(self): ctx.storageInitialized = yali.storage.initialize(ctx.storage, ctx.interface) self.initFinished() def initFinished(self): self.pds_messagebox.animate(start=CURRENT, stop=CURRENT, direction=OUT) disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if ctx.storageInitialized: if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 ctx.mainScreen.slotNext(dry_run=True) else: ctx.mainScreen.enableBack()
class Widget(QWidget, ScreenWidget): name = "timeSetup" def __init__(self): QWidget.__init__(self) self.ui = Ui_DateTimeWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.from_time_updater = True self.is_date_changed = False self.current_zone = "" self.tz_dict = {} self.continents = [] self.countries = [] for country, data in yali.localedata.locales.items(): if country == ctx.lang: if data.has_key("timezone"): ctx.installData.timezone = data["timezone"] # Append continents and countries the time zone dictionary self.createTZDictionary() # Sort continent list self.sortContinents() # Append sorted continents to combobox self.loadContinents() # Load current continents country list self.getCountries(self.current_zone["continent"]) # Highlight the current zone self.index = self.ui.continentList.findText( self.current_zone["continent"]) self.ui.continentList.setCurrentIndex(self.index) self.index = self.ui.countryList.findText(self.current_zone["country"]) self.ui.countryList.setCurrentIndex(self.index) # Initialize widget signal and slots self.__initSignals__() self.ui.calendarWidget.setDate(QDate.currentDate()) self.pthread = None self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.timer.start(1000) ctx.mainScreen.currentLanguageChanged.connect(self.retranslateUi) ctx.mainScreen.currentLanguageChanged.connect(self.changeCountry) ctx.mainScreen.currentLanguageChanged.connect(self.updateClock) self.ui.countryList.currentIndexChanged[int].connect( self.setWidgetDateTime) def changeCountry(self): data = yali.localedata.locales[ctx.lang.split("_")[0]] if data.has_key("timezone"): ctx.installData.timezone = data["timezone"] # Append continents and countries the time zone dictionary self.createTZDictionary() # Sort continent list self.sortContinents() # Append sorted continents to combobox self.loadContinents() # Load current continents country list self.getCountries(self.current_zone["continent"]) # Highlight the current zone self.index = self.ui.continentList.findText( self.current_zone["continent"]) self.ui.continentList.setCurrentIndex(self.index) self.index = self.ui.countryList.findText(self.current_zone["country"]) self.ui.countryList.setCurrentIndex(self.index) def setWidgetDateTime(self, index): tz = str(self.ui.countryList.itemData(index)) currentDateTime = QDateTime.currentDateTimeUtc().toTimeZone( QTimeZone(tz)) self.ui.calendarWidget.setDate(currentDateTime.date()) self.ui.timeEdit.setDateTime(currentDateTime) def __initSignals__(self): self.ui.timeEdit.timeChanged[QTime].connect(self.timerStop) self.ui.calendarWidget.dateChanged.connect(self.dateChanged) self.timer.timeout.connect(self.updateClock) self.ui.continentList.activated[str].connect(self.getCountries) def createTZDictionary(self): tz = TimeZoneList() zones = [x.timeZone for x in tz.getEntries()] zones.sort() for zone in zones: split = zone.split("/") # Human readable continent names continent_pretty_name = split[0].replace("_", " ") continent_pretty_name = continent_pretty_name # Some country names can be like Argentina/Catamarca so this fixes the splitting problem # caused by zone.split("/") # # Remove continent info and take the rest as the country name split.pop(0) country_pretty_name = " / ".join(split) # Human readable country names country_pretty_name = country_pretty_name.replace("_", " ") # Get current zone if zone == ctx.installData.timezone: self.current_zone = { "continent": continent_pretty_name, "country": country_pretty_name } # Append to dictionary if self.tz_dict.has_key(continent_pretty_name): self.tz_dict[continent_pretty_name].append( [country_pretty_name, zone]) else: self.tz_dict[continent_pretty_name] = [[ country_pretty_name, zone ]] def sortContinents(self): for continent in self.tz_dict.keys(): self.continents.append(continent) self.continents.sort() def loadContinents(self): for continent in self.continents: self.ui.continentList.addItem(continent) def getCountries(self, continent): # Countries of the selected continent countries = self.tz_dict[str(continent)] self.ui.countryList.clear() for country, zone in countries: self.ui.countryList.addItem(country, zone) self.countries.append(country) def dateChanged(self): self.is_date_changed = True def timerStop(self): if self.from_time_updater: return # Human action detected; stop the timer. self.timer.stop() def updateClock(self): # What time is it ? cur = QTime.currentTime() self.from_time_updater = True self.ui.timeEdit.setTime(cur) self.from_time_updater = False def shown(self): self.timer.start(1000) if ctx.flags.install_type == ctx.STEP_BASE: self.pthread = PThread(self, self.startInit, self.dummy) self.setWidgetDateTime(self.ui.countryList.currentIndex()) def dummy(self): pass def setTime(self): ctx.interface.informationWindow.update( _("General", "Adjusting time settings")) date = self.ui.calendarWidget.date() time = self.ui.timeEdit.time() args = "%02d%02d%02d%02d%04d.%02d" % (date.month(), date.day(), time.hour(), time.minute(), date.year(), time.second()) # Set current date and time ctx.logger.debug("Date/Time setting to %s" % args) yali.util.run_batch("date", [args]) # Sync date time with hardware ctx.logger.debug("YALI's time is syncing with the system.") yali.util.run_batch("hwclock", ["--systohc"]) ctx.interface.informationWindow.hide() def execute(self): if not self.timer.isActive() or self.is_date_changed: QTimer.singleShot(500, self.setTime) self.timer.stop() index = self.ui.countryList.currentIndex() ctx.installData.timezone = self.ui.countryList.itemData(index) ctx.logger.debug("Time zone selected as %s " % ctx.installData.timezone) if ctx.flags.install_type == ctx.STEP_BASE: #FIXME:Refactor hacky code ctx.installData.rootPassword = ctx.consts.default_password ctx.installData.hostName = yali.util.product_release() if ctx.storageInitialized: disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 return True else: self.pds_messagebox.setMessage( _("General", "Storage Devices initialising...")) self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) ctx.mainScreen.step_increment = 0 self.pthread.start() QTimer.singleShot(2, self.startStorageInitialize) return False return True def startInit(self): self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) def startStorageInitialize(self): ctx.storageInitialized = yali.storage.initialize( ctx.storage, ctx.interface) self.initFinished() def initFinished(self): self.pds_messagebox.animate(start=CURRENT, stop=CURRENT, direction=OUT) disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if ctx.storageInitialized: if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 ctx.mainScreen.slotNext(dry_run=True) else: ctx.mainScreen.enableBack() def retranslateUi(self): self.ui.retranslateUi(self)
class Widget(QWidget, ScreenWidget): name = "admin" def __init__(self): QWidget.__init__(self) self.ui = Ui_RootPassWidget() self.ui.setupUi(self) self.intf = ctx.interface self.host_valid = True self.pass_valid = False if ctx.flags.install_type in [ctx.STEP_DEFAULT, ctx.STEP_LIVE]: self.pthread = PThread(self, self.startInit, self.dummy) self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.connect(self.ui.pass1, SIGNAL("textChanged(const QString &)"), self.slotTextChanged) self.connect(self.ui.pass2, SIGNAL("textChanged(const QString &)"), self.slotTextChanged) self.connect(self.ui.pass2, SIGNAL("returnPressed()"), self.slotReturnPressed) self.connect(self.ui.hostname, SIGNAL("textChanged(const QString &)"), self.slotHostnameChanged) def update(self): if self.host_valid and self.pass_valid: ctx.mainScreen.enableNext() else: ctx.mainScreen.disableNext() def shown(self): if ctx.installData.hostName: self.ui.hostname.setText(str(ctx.installData.hostName)) else: # Use first added user's name as machine name if its exists release_hostname = yali.util.product_release() if self.ui.hostname.text() == '': self.ui.hostname.setText(release_hostname) if ctx.installData.rootPassword: self.ui.pass1.setText(ctx.installData.rootPassword) self.ui.pass2.setText(ctx.installData.rootPassword) self.update() self.checkCapsLock() self.ui.pass1.setFocus() def dummy(self): pass def execute(self): ctx.installData.rootPassword = unicode(self.ui.pass1.text()) ctx.installData.hostName = unicode(self.ui.hostname.text()) if ctx.flags.install_type in [ctx.STEP_DEFAULT, ctx.STEP_LIVE]: #FIXME:Refactor dirty code if ctx.storageInitialized: disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 else: self.pds_messagebox.setMessage( _("Storage Devices initialising...")) self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) ctx.mainScreen.step_increment = 0 self.pthread.start() QTimer.singleShot(2, self.startStorageInitialize) return False return True def startInit(self): self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) def startStorageInitialize(self): ctx.storageInitialized = yali.storage.initialize( ctx.storage, ctx.interface) self.initFinished() def initFinished(self): self.pds_messagebox.animate(start=CURRENT, stop=CURRENT, direction=OUT) disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if ctx.storageInitialized: if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 ctx.mainScreen.slotNext(dry_run=True) else: ctx.mainScreen.enableBack() def setCapsLockIcon(self, child): if type(child) == QLineEdit: if pardus.xorg.capslock.isOn(): child.setStyleSheet("""QLineEdit { background-image: url(:/gui/pics/caps.png); background-repeat: no-repeat; background-position: right; padding-right: 35px; }""") else: child.setStyleSheet("""QLineEdit { background-image: none; padding-right: 0px; }""") def checkCapsLock(self): for child in self.ui.groupBox.children(): self.setCapsLockIcon(child) def keyReleaseEvent(self, event): self.checkCapsLock() def slotTextChanged(self): password = str(self.ui.pass1.text()) password_confirm = str(self.ui.pass2.text()) if password and password == password_confirm: if len(password) < 4: self.intf.informationWindow.update(_('Password is too short.'), type="error") self.pass_valid = False else: self.intf.informationWindow.hide() self.pass_valid = True else: self.pass_valid = False if password_confirm: self.intf.informationWindow.update( _('Passwords do not match.'), type="error") if password.lower() == "root" or password_confirm.lower() == "root": self.pass_valid = False if password_confirm: self.intf.informationWindow.update( _('Do not use your username as your password.'), type="error") if self.pass_valid: self.intf.informationWindow.hide() self.update() def slotHostnameChanged(self, hostname): if len(hostname) > 64: self.host_valid = False self.intf.informationWindow.update( _('Hostname cannot be longer than 64 characters.'), type="error") self.update() return if not hostname.toAscii(): self.host_valid = False self.update() return self.host_valid = yali.util.is_text_valid(hostname.toAscii()) if not self.host_valid: self.intf.informationWindow.update( _('Hostname contains invalid characters.'), type="error") else: self.intf.informationWindow.hide() self.update() def slotReturnPressed(self): if ctx.mainScreen.isNextEnabled(): ctx.mainScreen.slotNext()
class Widget(QWidget, ScreenWidget): name = "admin" finished=pyqtSignal() def __init__(self): QWidget.__init__(self) self.ui = Ui_RootPassWidget() self.ui.setupUi(self) self.intf = ctx.interface self.host_valid = True self.pass_valid = False if ctx.flags.install_type == ctx.STEP_DEFAULT: self.pthread = PThread(self, self.startInit, self.dummy) self.pds_messagebox = PMessageBox(self) self.pds_messagebox.enableOverlay() self.ui.pass1.textChanged[str].connect(self.slotTextChanged) self.ui.pass2.textChanged[str].connect(self.slotTextChanged) self.ui.pass2.returnPressed.connect(self.slotReturnPressed) self.ui.hostname.textChanged[str].connect(self.slotHostnameChanged) def update(self): if self.host_valid and self.pass_valid: ctx.mainScreen.enableNext() else: ctx.mainScreen.disableNext() def shown(self): if ctx.installData.hostName: self.ui.hostname.setText(str(ctx.installData.hostName)) else: # Use first added user's name as machine name if its exists release_hostname = yali.util.product_release() if self.ui.hostname.text() == '': self.ui.hostname.setText(release_hostname) if ctx.installData.rootPassword: self.ui.pass1.setText(ctx.installData.rootPassword) self.ui.pass2.setText(ctx.installData.rootPassword) self.update() self.checkCapsLock() self.ui.pass1.setFocus() def dummy(self): pass def execute(self): ctx.installData.rootPassword = unicode(self.ui.pass1.text()) ctx.installData.hostName = unicode(self.ui.hostname.text()) if ctx.flags.install_type == ctx.STEP_DEFAULT: #FIXME:Refactor dirty code if ctx.storageInitialized: disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 else: self.pds_messagebox.setMessage(_("Storage Devices initialising...")) self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) ctx.mainScreen.step_increment = 0 self.pthread.start() QTimer.singleShot(2, self.startStorageInitialize) return False return True def startInit(self): self.pds_messagebox.animate(start=MIDCENTER, stop=MIDCENTER) def startStorageInitialize(self): ctx.storageInitialized = yali.storage.initialize(ctx.storage, ctx.interface) self.initFinished() def initFinished(self): self.pds_messagebox.animate(start=CURRENT, stop=CURRENT, direction=OUT) disks = filter(lambda d: not d.format.hidden, ctx.storage.disks) if ctx.storageInitialized: if len(disks) == 1: ctx.storage.clearPartDisks = [disks[0].name] ctx.mainScreen.step_increment = 2 else: ctx.mainScreen.step_increment = 1 ctx.mainScreen.slotNext(dry_run=True) self.finished.emit() else: ctx.mainScreen.enableBack() def setCapsLockIcon(self, child): if type(child) == QLineEdit: if pardus.xorg.capslock.isOn(): child.setStyleSheet("""QLineEdit { background-image: url(:/gui/pics/caps.png); background-repeat: no-repeat; background-position: right; padding-right: 35px; }""") else: child.setStyleSheet("""QLineEdit { background-image: none; padding-right: 0px; }""") def checkCapsLock(self): for child in self.ui.groupBox.children(): self.setCapsLockIcon(child) def keyReleaseEvent(self, event): self.checkCapsLock() def slotTextChanged(self): password = str(self.ui.pass1.text()) password_confirm = str(self.ui.pass2.text()) if password and password == password_confirm: if len(password) < 4: self.intf.informationWindow.update(_('Password is too short.'), type="error") self.pass_valid = False else: self.intf.informationWindow.hide() self.pass_valid = True else: self.pass_valid = False if password_confirm: self.intf.informationWindow.update(_('Passwords do not match.'), type="error") if password.lower()=="root" or password_confirm.lower()=="root": self.pass_valid = False if password_confirm: self.intf.informationWindow.update(_('Do not use your username as your password.'), type="error") if self.pass_valid: self.intf.informationWindow.hide() self.update() def slotHostnameChanged(self, hostname): if len(hostname) > 64: self.host_valid = False self.intf.informationWindow.update(_('Hostname cannot be longer than 64 characters.'), type="error") self.update() return if not hostname: self.host_valid = False self.update() return self.host_valid = yali.util.is_text_valid(hostname) if not self.host_valid: self.intf.informationWindow.update(_('Hostname contains invalid characters.'), type="error") else: self.intf.informationWindow.hide() self.update() def slotReturnPressed(self): if ctx.mainScreen.isNextEnabled(): ctx.mainScreen.slotNext()