]> git.sven.stormbind.net Git - sven/vym.git/blob - src/confluence-settings-dialog.cpp
New upstream version 2.9.22
[sven/vym.git] / src / confluence-settings-dialog.cpp
1 #include "confluence-settings-dialog.h"
2
3 #include "settings.h"
4
5 extern QString confluencePassword;
6 extern Settings settings;
7
8 ConfluenceSettingsDialog::ConfluenceSettingsDialog(QWidget *parent) : QDialog(parent)
9 {
10     ui.setupUi(this);
11     QDialog::setWindowTitle("VYM - " +
12                             tr("Confluence settings", "Confluence settings dialog title"));
13
14     ui.urlLineEdit->setText(
15         settings.value("/atlassian/confluence/url", "Confluence base URL").toString());
16
17     bool b;
18     b = settings.value("/atlassian/confluence/authUsingPAT", true).toBool();
19     if (b)
20         ui.usePATCheckBox->setCheckState(Qt::Checked);
21     else
22         ui.usePATCheckBox->setCheckState(Qt::Unchecked);
23     ui.PATLineEdit->setText(
24         settings.value("/atlassian/confluence/PAT", "").toString());
25
26     ui.userLineEdit->setText(
27             settings.value("/atlassian/confluence/username", "Confluence username")
28                     .toString());
29
30     if (!confluencePassword.isEmpty())
31         // password is only in memory, not saved in settings
32         ui.passwordLineEdit->setText(confluencePassword);
33     else
34         ui.passwordLineEdit->setText(
35             settings.value("/atlassian/confluence/password", "").toString());
36
37     b = settings.value("/atlassian/confluence/savePassword", false).toBool();
38     if (b)
39         ui.savePasswordCheckBox->setCheckState(Qt::Checked);
40     else
41         ui.savePasswordCheckBox->setCheckState(Qt::Unchecked);
42
43     connect(ui.usePATCheckBox, SIGNAL(clicked()), this, SLOT(updateAuthenticationFields()));
44     connect(this, &QDialog::accepted, this, &ConfluenceSettingsDialog::updateSettings);
45
46     updateAuthenticationFields();
47 }
48
49 void ConfluenceSettingsDialog::updateAuthenticationFields()
50 {
51     if (ui.usePATCheckBox->isChecked()) {
52         ui.PATLineEdit->show();
53         ui.PATLabel->show();
54         ui.userLabel->hide();
55         ui.userLineEdit->hide();
56         ui.passwordLabel->hide();
57         ui.passwordLineEdit->hide();
58         ui.savePasswordCheckBox->hide();
59     } else {
60         ui.PATLineEdit->hide();
61         ui.PATLabel->hide();
62         ui.userLabel->show();
63         ui.userLineEdit->show();
64         ui.passwordLabel->show();
65         ui.passwordLineEdit->show();
66         ui.savePasswordCheckBox->show();
67     }
68     adjustSize();
69 }
70
71 void ConfluenceSettingsDialog::updateSettings()
72 {
73     settings.remove("confluence");
74
75     settings.beginGroup("/atlassian/confluence");
76     settings.setValue("authUsingPAT", ui.usePATCheckBox->isChecked());
77     settings.setValue("username", ui.userLineEdit->text());
78     if (ui.usePATCheckBox->isChecked()) {
79         // Don't save password if PAT is used
80         settings.remove("savePassword");
81         settings.remove("password");
82         if(!ui.PATLineEdit->text().isEmpty())
83             settings.setValue("PAT", ui.PATLineEdit->text());
84         else
85             settings.remove("PAT");
86     } else {
87         settings.remove("PAT");
88         settings.setValue("savePassword", ui.savePasswordCheckBox->isChecked());
89
90         // Save password only on request persistently in settings
91         if (ui.savePasswordCheckBox->isChecked())
92             settings.setValue("password", ui.passwordLineEdit->text());
93         else
94             settings.remove("password");
95
96         // Save password in memory
97         confluencePassword = ui.passwordLineEdit->text();
98     }
99         
100     settings.endGroup();
101 }