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
33 bool SettingsForm::eventFilter(QObject *obj, QEvent *e)
\r
35 if(obj == ui->syncPasswordLineEdit && ui->syncPasswordLineEdit->isReadOnly() && e->type() == QEvent::MouseButtonRelease)
\r
37 int res = QMessageBox::warning(this, "Clear Password",
\r
38 "Are you sure you would like to change the password?",
\r
39 QMessageBox::Yes, QMessageBox::Cancel);
\r
40 if(res==QMessageBox::Yes)
\r
42 ui->syncPasswordLineEdit->setReadOnly(false);
\r
43 ui->syncPasswordLineEdit->clear();
\r
47 return QWidget::eventFilter(obj,e);
\r
51 void SettingsForm::on_restoreSyncPushButton_clicked()
\r
53 ui->syncUrlLineEdit->setText(DEFAULT_SYNC_URL);
\r
56 void SettingsForm::on_applyPushButton_clicked()
\r
62 void SettingsForm::on_savePushButton_clicked()
\r
65 emit signalNavigate(0);
\r
68 void SettingsForm::saveSync()
\r
70 settings->setValue(USERNAME, ui->syncUsernameLineEdit->text());
\r
71 QVariant passString = ui->syncPasswordLineEdit->text();
\r
73 if(ui->syncPasswordLineEdit->isReadOnly()) //Password is already a hash
\r
75 settings->setValue(PASSWORD, passString);
\r
79 QString passMd5 = QCryptographicHash::hash(passString.toByteArray(), QCryptographicHash::Md5).toHex().constData();
\r
80 // We save the md5 hash of the password instead of the real password so it won't be retrievable.
\r
81 settings->setValue(PASSWORD, passMd5);
\r
83 settings->setValue(SYNC_URL, ui->syncUrlLineEdit->text());
\r
87 void SettingsForm::on_cancelPushButton_clicked()
\r
89 emit signalNavigate(0);
\r