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