1 #include "settingsform.h"
\r
2 #include "ui_settingsform.h"
\r
4 SettingsForm::SettingsForm(QWidget *parent) :
\r
6 ui(new Ui::SettingsForm)
\r
9 ui->syncUsernameLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
10 ui->syncPasswordLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
11 ui->syncUrlLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
12 settings = new QSettings(WILLEM_LIU, EASY_LIST);
\r
13 ui->syncPasswordLineEdit->installEventFilter(this);
\r
17 SettingsForm::~SettingsForm()
\r
22 void SettingsForm::shown()
\r
24 ui->syncUsernameLineEdit->setText(settings->value(USERNAME,"").toString());
\r
25 ui->syncPasswordLineEdit->setText(settings->value(PASSWORD,"").toString());
\r
26 if(settings->contains(PASSWORD))
\r
27 ui->syncPasswordLineEdit->setReadOnly(true);
\r
29 ui->syncUrlLineEdit->setText(settings->value(SYNC_URL, DEFAULT_SYNC_URL).toString());
\r
30 ui->syncUsernameLineEdit->setFocus(Qt::ActiveWindowFocusReason);
\r
32 bool SettingsForm::eventFilter(QObject *obj, QEvent *e)
\r
34 if(obj == ui->syncPasswordLineEdit && ui->syncPasswordLineEdit->isReadOnly() && e->type() == QEvent::MouseButtonRelease)
\r
36 int res = QMessageBox::warning(this, "Clear Password",
\r
37 "Are you sure you would like to change the password?",
\r
38 QMessageBox::Yes, QMessageBox::Cancel);
\r
39 if(res==QMessageBox::Yes)
\r
41 ui->syncPasswordLineEdit->setReadOnly(false);
\r
42 ui->syncPasswordLineEdit->clear();
\r
46 return QWidget::eventFilter(obj,e);
\r
49 void SettingsForm::on_restoreSyncPushButton_clicked()
\r
51 ui->syncUrlLineEdit->setText(DEFAULT_SYNC_URL);
\r
54 void SettingsForm::on_applyPushButton_clicked()
\r
60 void SettingsForm::on_savePushButton_clicked()
\r
63 emit signalNavigate(0);
\r
66 void SettingsForm::saveSync()
\r
68 settings->setValue(USERNAME, ui->syncUsernameLineEdit->text());
\r
69 QVariant passString = ui->syncPasswordLineEdit->text();
\r
71 if(ui->syncPasswordLineEdit->isReadOnly()) //Password is already a hash
\r
73 settings->setValue(PASSWORD,passString);
\r
77 QString passMd5 = QCryptographicHash::hash(passString.toByteArray(), QCryptographicHash::Md5).toHex().constData();
\r
78 // We save the md5 hash of the password instead of the real password so it won't be retrievable.
\r
79 settings->setValue(PASSWORD, passMd5);
\r
81 settings->setValue(SYNC_URL, ui->syncUrlLineEdit->text());
\r
85 void SettingsForm::on_cancelPushButton_clicked()
\r
87 emit signalNavigate(0);
\r