Accidentally removed shown(). Now put back.
[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         ui->syncPasswordLineEdit->setReadOnly(true);\r
28 \r
29     ui->syncUrlLineEdit->setText(settings->value(SYNC_URL, DEFAULT_SYNC_URL).toString());\r
30     ui->syncUsernameLineEdit->setFocus(Qt::ActiveWindowFocusReason);\r
31 }\r
32 \r
33 bool SettingsForm::eventFilter(QObject *obj, QEvent *e)\r
34 {\r
35     if(obj == ui->syncPasswordLineEdit && ui->syncPasswordLineEdit->isReadOnly() && e->type() == QEvent::MouseButtonRelease)\r
36     {\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
41         {\r
42             ui->syncPasswordLineEdit->setReadOnly(false);\r
43             ui->syncPasswordLineEdit->clear();\r
44         }\r
45     }\r
46     else\r
47         return QWidget::eventFilter(obj,e);\r
48     return true;\r
49 }\r
50 \r
51 void SettingsForm::on_restoreSyncPushButton_clicked()\r
52 {\r
53     ui->syncUrlLineEdit->setText(DEFAULT_SYNC_URL);\r
54 }\r
55 \r
56 void SettingsForm::on_applyPushButton_clicked()\r
57 {\r
58     saveSync();\r
59     shown();\r
60 }\r
61 \r
62 void SettingsForm::on_savePushButton_clicked()\r
63 {\r
64     saveSync();\r
65     emit signalNavigate(0);\r
66 }\r
67 \r
68 void SettingsForm::saveSync()\r
69 {\r
70     settings->setValue(USERNAME, ui->syncUsernameLineEdit->text());\r
71     QVariant passString = ui->syncPasswordLineEdit->text();\r
72 \r
73     if(ui->syncPasswordLineEdit->isReadOnly()) //Password is already a hash\r
74     {\r
75         settings->setValue(PASSWORD, passString);\r
76     }\r
77     else\r
78     {\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
82     }\r
83     settings->setValue(SYNC_URL, ui->syncUrlLineEdit->text());\r
84     settings->sync();\r
85 }\r
86 \r
87 void SettingsForm::on_cancelPushButton_clicked()\r
88 {\r
89     emit signalNavigate(0);\r
90 }\r