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->syncTipLabel->setOpenExternalLinks(true);
\r
10 ui->syncUsernameLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
11 ui->syncPasswordLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
12 ui->syncUrlLineEdit->setInputMethodHints(Qt::ImhNoAutoUppercase);
\r
13 settings = new QSettings(WILLEM_LIU, EASY_LIST);
\r
14 ui->syncPasswordLineEdit->installEventFilter(this);
\r
18 SettingsForm::~SettingsForm()
\r
23 void SettingsForm::shown()
\r
25 ui->syncUsernameLineEdit->setText(settings->value(USERNAME,"").toString());
\r
26 ui->syncPasswordLineEdit->setText(settings->value(PASSWORD,"").toString());
\r
27 if(settings->contains(PASSWORD))
\r
29 ui->syncPasswordLineEdit->setReadOnly(true);
\r
32 ui->syncUrlLineEdit->setText(settings->value(SYNC_URL, DEFAULT_SYNC_URL).toString());
\r
33 ui->syncUsernameLineEdit->setFocus(Qt::ActiveWindowFocusReason);
\r
36 bool SettingsForm::eventFilter(QObject *obj, QEvent *e)
\r
38 if(obj == ui->syncPasswordLineEdit && ui->syncPasswordLineEdit->isReadOnly() && e->type() == QEvent::MouseButtonRelease)
\r
40 int res = QMessageBox::warning(this, "Clear Password",
\r
41 "Are you sure you would like to change the password?",
\r
42 QMessageBox::Yes, QMessageBox::Cancel);
\r
43 if(res==QMessageBox::Yes)
\r
45 ui->syncPasswordLineEdit->setReadOnly(false);
\r
46 ui->syncPasswordLineEdit->clear();
\r
50 return QWidget::eventFilter(obj,e);
\r
54 void SettingsForm::on_restoreSyncPushButton_clicked()
\r
56 ui->syncUrlLineEdit->setText(DEFAULT_SYNC_URL);
\r
59 void SettingsForm::on_applyPushButton_clicked()
\r
65 void SettingsForm::on_savePushButton_clicked()
\r
68 emit signalNavigate(0);
\r
71 void SettingsForm::saveSync()
\r
73 settings->setValue(USERNAME, ui->syncUsernameLineEdit->text());
\r
74 QVariant passString = ui->syncPasswordLineEdit->text();
\r
76 if(ui->syncPasswordLineEdit->isReadOnly()) //Password is already a hash
\r
78 settings->setValue(PASSWORD, passString);
\r
82 QString passMd5 = QCryptographicHash::hash(passString.toByteArray(), QCryptographicHash::Md5).toHex().constData();
\r
83 // We save the md5 hash of the password instead of the real password so it won't be retrievable.
\r
84 settings->setValue(PASSWORD, passMd5);
\r
86 settings->setValue(SYNC_URL, ui->syncUrlLineEdit->text());
\r
90 void SettingsForm::on_cancelPushButton_clicked()
\r
92 emit signalNavigate(0);
\r