Added brackets, I like to see scopes of code.
[easylist] / settingsform.cpp
1 #include "settingsform.h"\r
2 #include "ui_settingsform.h"\r
3 \r
4 SettingsForm::SettingsForm(QWidget *parent) :\r
5     SlideWidget(parent),\r
6     ui(new Ui::SettingsForm)\r
7 {\r
8     ui->setupUi(this);\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
14     shown();\r
15 }\r
16 \r
17 SettingsForm::~SettingsForm()\r
18 {\r
19     delete ui;\r
20 }\r
21 \r
22 void SettingsForm::shown()\r
23 {\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     {\r
28         ui->syncPasswordLineEdit->setReadOnly(true);\r
29     }\r
30 \r
31     ui->syncUrlLineEdit->setText(settings->value(SYNC_URL, DEFAULT_SYNC_URL).toString());\r
32     ui->syncUsernameLineEdit->setFocus(Qt::ActiveWindowFocusReason);\r
33 }\r
34 \r
35 bool SettingsForm::eventFilter(QObject *obj, QEvent *e)\r
36 {\r
37     if(obj == ui->syncPasswordLineEdit && ui->syncPasswordLineEdit->isReadOnly() && e->type() == QEvent::MouseButtonRelease)\r
38     {\r
39         int res = QMessageBox::warning(this, "Clear Password",\r
40                                        "Are you sure you would like to change the password?",\r
41                                        QMessageBox::Yes, QMessageBox::Cancel);\r
42         if(res==QMessageBox::Yes)\r
43         {\r
44             ui->syncPasswordLineEdit->setReadOnly(false);\r
45             ui->syncPasswordLineEdit->clear();\r
46         }\r
47     }\r
48     else\r
49         return QWidget::eventFilter(obj,e);\r
50     return true;\r
51 }\r
52 \r
53 void SettingsForm::on_restoreSyncPushButton_clicked()\r
54 {\r
55     ui->syncUrlLineEdit->setText(DEFAULT_SYNC_URL);\r
56 }\r
57 \r
58 void SettingsForm::on_applyPushButton_clicked()\r
59 {\r
60     saveSync();\r
61     shown();\r
62 }\r
63 \r
64 void SettingsForm::on_savePushButton_clicked()\r
65 {\r
66     saveSync();\r
67     emit signalNavigate(0);\r
68 }\r
69 \r
70 void SettingsForm::saveSync()\r
71 {\r
72     settings->setValue(USERNAME, ui->syncUsernameLineEdit->text());\r
73     QVariant passString = ui->syncPasswordLineEdit->text();\r
74 \r
75     if(ui->syncPasswordLineEdit->isReadOnly()) //Password is already a hash\r
76     {\r
77         settings->setValue(PASSWORD, passString);\r
78     }\r
79     else\r
80     {\r
81         QString passMd5 = QCryptographicHash::hash(passString.toByteArray(), QCryptographicHash::Md5).toHex().constData();\r
82         // We save the md5 hash of the password instead of the real password so it won't be retrievable.\r
83         settings->setValue(PASSWORD, passMd5);\r
84     }\r
85     settings->setValue(SYNC_URL, ui->syncUrlLineEdit->text());\r
86     settings->sync();\r
87 }\r
88 \r
89 void SettingsForm::on_cancelPushButton_clicked()\r
90 {\r
91     emit signalNavigate(0);\r
92 }\r