X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=src%2Fconfluence-settings-dialog.cpp;fp=src%2Fconfluence-settings-dialog.cpp;h=c5224180aa8dd24b782e7ddefa344a8bb4072e0f;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=0000000000000000000000000000000000000000;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/src/confluence-settings-dialog.cpp b/src/confluence-settings-dialog.cpp new file mode 100644 index 0000000..c522418 --- /dev/null +++ b/src/confluence-settings-dialog.cpp @@ -0,0 +1,101 @@ +#include "confluence-settings-dialog.h" + +#include "settings.h" + +extern QString confluencePassword; +extern Settings settings; + +ConfluenceSettingsDialog::ConfluenceSettingsDialog(QWidget *parent) : QDialog(parent) +{ + ui.setupUi(this); + QDialog::setWindowTitle("VYM - " + + tr("Confluence settings", "Confluence settings dialog title")); + + ui.urlLineEdit->setText( + settings.value("/atlassian/confluence/url", "Confluence base URL").toString()); + + bool b; + b = settings.value("/atlassian/confluence/authUsingPAT", true).toBool(); + if (b) + ui.usePATCheckBox->setCheckState(Qt::Checked); + else + ui.usePATCheckBox->setCheckState(Qt::Unchecked); + ui.PATLineEdit->setText( + settings.value("/atlassian/confluence/PAT", "").toString()); + + ui.userLineEdit->setText( + settings.value("/atlassian/confluence/username", "Confluence username") + .toString()); + + if (!confluencePassword.isEmpty()) + // password is only in memory, not saved in settings + ui.passwordLineEdit->setText(confluencePassword); + else + ui.passwordLineEdit->setText( + settings.value("/atlassian/confluence/password", "").toString()); + + b = settings.value("/atlassian/confluence/savePassword", false).toBool(); + if (b) + ui.savePasswordCheckBox->setCheckState(Qt::Checked); + else + ui.savePasswordCheckBox->setCheckState(Qt::Unchecked); + + connect(ui.usePATCheckBox, SIGNAL(clicked()), this, SLOT(updateAuthenticationFields())); + connect(this, &QDialog::accepted, this, &ConfluenceSettingsDialog::updateSettings); + + updateAuthenticationFields(); +} + +void ConfluenceSettingsDialog::updateAuthenticationFields() +{ + if (ui.usePATCheckBox->isChecked()) { + ui.PATLineEdit->show(); + ui.PATLabel->show(); + ui.userLabel->hide(); + ui.userLineEdit->hide(); + ui.passwordLabel->hide(); + ui.passwordLineEdit->hide(); + ui.savePasswordCheckBox->hide(); + } else { + ui.PATLineEdit->hide(); + ui.PATLabel->hide(); + ui.userLabel->show(); + ui.userLineEdit->show(); + ui.passwordLabel->show(); + ui.passwordLineEdit->show(); + ui.savePasswordCheckBox->show(); + } + adjustSize(); +} + +void ConfluenceSettingsDialog::updateSettings() +{ + settings.remove("confluence"); + + settings.beginGroup("/atlassian/confluence"); + settings.setValue("authUsingPAT", ui.usePATCheckBox->isChecked()); + settings.setValue("username", ui.userLineEdit->text()); + if (ui.usePATCheckBox->isChecked()) { + // Don't save password if PAT is used + settings.remove("savePassword"); + settings.remove("password"); + if(!ui.PATLineEdit->text().isEmpty()) + settings.setValue("PAT", ui.PATLineEdit->text()); + else + settings.remove("PAT"); + } else { + settings.remove("PAT"); + settings.setValue("savePassword", ui.savePasswordCheckBox->isChecked()); + + // Save password only on request persistently in settings + if (ui.savePasswordCheckBox->isChecked()) + settings.setValue("password", ui.passwordLineEdit->text()); + else + settings.remove("password"); + + // Save password in memory + confluencePassword = ui.passwordLineEdit->text(); + } + + settings.endGroup(); +}