1 /*
2 SPDX-FileCopyrightText: 2013-2021 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "serversievesettingsdialog.h"
8 #include "serversievesettings.h"
9
10 #include <KLocalizedString>
11 #include <QDialogButtonBox>
12 #include <QPushButton>
13 #include <QVBoxLayout>
14
ServerSieveSettingsDialog(QWidget * parent)15 ServerSieveSettingsDialog::ServerSieveSettingsDialog(QWidget *parent)
16 : QDialog(parent)
17 {
18 setWindowTitle(i18nc("@title:window", "Add Sieve Server"));
19
20 auto w = new QWidget;
21 auto lay = new QVBoxLayout;
22 mServerSieveSettings = new ServerSieveSettings;
23 connect(mServerSieveSettings, &ServerSieveSettings::enableOkButton, this, &ServerSieveSettingsDialog::slotEnableButtonOk);
24 lay->addWidget(mServerSieveSettings);
25 lay->setContentsMargins({});
26 w->setLayout(lay);
27 auto mainLayout = new QVBoxLayout(this);
28 mainLayout->addWidget(w);
29
30 auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
31 mOkButton = buttonBox->button(QDialogButtonBox::Ok);
32 mOkButton->setDefault(true);
33 mOkButton->setShortcut(Qt::CTRL | Qt::Key_Return);
34 connect(buttonBox, &QDialogButtonBox::accepted, this, &ServerSieveSettingsDialog::accept);
35 connect(buttonBox, &QDialogButtonBox::rejected, this, &ServerSieveSettingsDialog::reject);
36 mainLayout->addWidget(buttonBox);
37
38 readConfig();
39 mOkButton->setEnabled(false);
40 }
41
~ServerSieveSettingsDialog()42 ServerSieveSettingsDialog::~ServerSieveSettingsDialog()
43 {
44 writeConfig();
45 }
46
readConfig()47 void ServerSieveSettingsDialog::readConfig()
48 {
49 KConfigGroup group(KSharedConfig::openStateConfig(), "ServerSieveSettingsDialog");
50 const QSize size = group.readEntry("Size", QSize(450, 350));
51 if (size.isValid()) {
52 resize(size);
53 }
54 }
55
writeConfig()56 void ServerSieveSettingsDialog::writeConfig()
57 {
58 KConfigGroup group(KSharedConfig::openStateConfig(), "ServerSieveSettingsDialog");
59 group.writeEntry("Size", size());
60 group.sync();
61 }
62
slotEnableButtonOk(bool b)63 void ServerSieveSettingsDialog::slotEnableButtonOk(bool b)
64 {
65 mOkButton->setEnabled(b);
66 }
67
serverName() const68 QString ServerSieveSettingsDialog::serverName() const
69 {
70 return mServerSieveSettings->serverName();
71 }
72
setServerName(const QString & name)73 void ServerSieveSettingsDialog::setServerName(const QString &name)
74 {
75 mServerSieveSettings->setServerName(name);
76 }
77
port() const78 int ServerSieveSettingsDialog::port() const
79 {
80 return mServerSieveSettings->port();
81 }
82
setPort(int value)83 void ServerSieveSettingsDialog::setPort(int value)
84 {
85 mServerSieveSettings->setPort(value);
86 }
87
userName() const88 QString ServerSieveSettingsDialog::userName() const
89 {
90 return mServerSieveSettings->userName();
91 }
92
setUserName(const QString & name)93 void ServerSieveSettingsDialog::setUserName(const QString &name)
94 {
95 mServerSieveSettings->setUserName(name);
96 }
97
password() const98 QString ServerSieveSettingsDialog::password() const
99 {
100 return mServerSieveSettings->password();
101 }
102
setPassword(const QString & pass)103 void ServerSieveSettingsDialog::setPassword(const QString &pass)
104 {
105 mServerSieveSettings->setPassword(pass);
106 }
107
setServerSieveConfig(const SieveEditorUtil::SieveServerConfig & conf)108 void ServerSieveSettingsDialog::setServerSieveConfig(const SieveEditorUtil::SieveServerConfig &conf)
109 {
110 mServerSieveSettings->setServerSieveConfig(conf);
111 }
112
serverSieveConfig() const113 SieveEditorUtil::SieveServerConfig ServerSieveSettingsDialog::serverSieveConfig() const
114 {
115 return mServerSieveSettings->serverSieveConfig();
116 }
117