def __init__(self, parent=None): ''' Constructor ''' QtGui.QDialog.__init__(self, parent) self._ui = Ui_RegisterDialog() self._ui.setupUi(self) self._autoUpdateEmailText = True self._makeConnections() self._updateUi()
class RegisterDialog(QtGui.QDialog): ''' Dialog for registering a user. ''' def __init__(self, parent=None): ''' Constructor ''' QtGui.QDialog.__init__(self, parent) self._ui = Ui_RegisterDialog() self._ui.setupUi(self) self._autoUpdateEmailText = True self._makeConnections() self._updateUi() def _updateUi(self): username = self._ui.usernameLineEdit.text() settings = QtCore.QSettings() settings.beginGroup('RegisteredUsers') user_exists = username in settings.childGroups() settings.endGroup() valid_username = not (user_exists or len(username) == 0) if not valid_username: self._ui.usernameLineEdit.setStyleSheet(invalid_style_sheet) else: self._ui.usernameLineEdit.setStyleSheet('') valid_password = self._isPasswordValid() if not valid_password: self._ui.passwordLineEdit.setStyleSheet(invalid_style_sheet) self._ui.confirmPasswordLineEdit.setStyleSheet(invalid_style_sheet) else: self._ui.passwordLineEdit.setStyleSheet('') self._ui.confirmPasswordLineEdit.setStyleSheet('') disable = True if valid_username and valid_password and \ len(self._ui.emailLineEdit.text()) > 0: disable = False self._ui.buttonBox.button(QtGui.QDialogButtonBox.Ok).setDisabled(disable) def _makeConnections(self): self._ui.usernameLineEdit.textEdited.connect(self._updateUi) self._ui.usernameLineEdit.textEdited.connect(self._updateEmail) self._ui.emailLineEdit.editingFinished.connect(self._updateUi) self._ui.emailLineEdit.textEdited.connect(self._stopUpdateEmail) self._ui.passwordLineEdit.editingFinished.connect(self._updateUi) self._ui.confirmPasswordLineEdit.textEdited.connect(self._updateUi) def username(self): return self._ui.usernameLineEdit.text() def email(self): return self._ui.emailLineEdit.text() def password(self): return sha224(self._ui.passwordLineEdit.text().encode('utf8')).hexdigest() def _updateEmail(self, new_text): if self._autoUpdateEmailText: self._ui.emailLineEdit.setText(new_text + '@') def _stopUpdateEmail(self): self._autoUpdateEmailText = False def _isPasswordValid(self): if len(self._ui.passwordLineEdit.text()) == 0: return False p1 = sha224(self._ui.passwordLineEdit.text().encode('utf8')).hexdigest() pc = sha224(self._ui.confirmPasswordLineEdit.text().encode('utf8')).hexdigest() return p1 == pc