def __init__(self, parent=None):
     QDialog.__init__(self)
     self.dialog = AuthorizationWrapper(self)
     self.parent = parent
     self.ui = Ui_SettingsDialog()
     self.ui.setupUi(self)
     settings = get_settings()
     self.ui.usernameEdit.setText(settings[0])
     self.ui.emailEdit.setText(settings[1])
     self.ssh_key()
     QObject.connect(self, SIGNAL('accepted()'), self.update_settings)
     QObject.connect(self.ui.generateButton, SIGNAL('clicked()'), self.check_key_existence)
     QObject.connect(self.dialog, SIGNAL('accepted()'), self.generate)
class SettingsDialogWrapper(QDialog):
    def __init__(self, parent=None):
        QDialog.__init__(self)
        self.dialog = AuthorizationWrapper(self)
        self.parent = parent
        self.ui = Ui_SettingsDialog()
        self.ui.setupUi(self)
        settings = get_settings()
        self.ui.usernameEdit.setText(settings[0])
        self.ui.emailEdit.setText(settings[1])
        self.ssh_key()
        QObject.connect(self, SIGNAL('accepted()'), self.update_settings)
        QObject.connect(self.ui.generateButton, SIGNAL('clicked()'), self.check_key_existence)
        QObject.connect(self.dialog, SIGNAL('accepted()'), self.generate)

    def ssh_key(self):
        self.ui.sshTextEdit.setText(get_ssh_key())

    def update_settings(self):
        set_settings(self.ui.usernameEdit.text(), self.ui.emailEdit.text())
    
    def generate(self):
        QMessageBox.information(self, 'Generated new key', generate_new_ssh_key(self.dialog.username, self.dialog.password), QMessageBox.Ok)
        self.ssh_key()

    def ask_for_auth(self):
        self.dialog.ui.label.setText('Email:')
        self.dialog.exec_()
        QObject.connect(self.dialog, SIGNAL('accepted()'), self.generate)

    def check_key_existence(self):
        if exists((expanduser('~/.ssh/id_rsa.pub'))) or exists((expanduser('~/.ssh/id_rsa.pub'))):
            reply = QMessageBox.question(self, 'Existing key', 'Do you want to override the existing SSH key?', QMessageBox.Yes, QMessageBox.No)
            if reply == QMessageBox.Yes:
                backup()
                self.ask_for_auth()
        else:
            self.ask_for_auth()