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 "sieveeditorconfigureserverwidget.h"
8 #include "serversievesettingsdialog.h"
9 #include "ui_sieveeditorconfigureserverwidget.h"
10
11 #include <KLocalizedString>
12 #include <KMessageBox>
13
SieveEditorConfigureServerWidget(QWidget * parent)14 SieveEditorConfigureServerWidget::SieveEditorConfigureServerWidget(QWidget *parent)
15 : QWidget(parent)
16 , ui(new Ui::SieveEditorConfigureServerWidget)
17 {
18 ui->setupUi(this);
19 connect(ui->modifyServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotModifyServer);
20 connect(ui->addServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotAddServer);
21 connect(ui->removeServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotDeleteServer);
22 connect(ui->serverSieveListWidget, &ServerSieveListWidget::itemSelectionChanged, this, &SieveEditorConfigureServerWidget::slotItemSelectionChanged);
23 slotItemSelectionChanged();
24 }
25
~SieveEditorConfigureServerWidget()26 SieveEditorConfigureServerWidget::~SieveEditorConfigureServerWidget()
27 {
28 delete ui;
29 }
30
readConfig()31 void SieveEditorConfigureServerWidget::readConfig()
32 {
33 ui->serverSieveListWidget->readConfig();
34 }
35
writeConfig()36 void SieveEditorConfigureServerWidget::writeConfig()
37 {
38 ui->serverSieveListWidget->writeConfig();
39 }
40
slotModifyServer()41 void SieveEditorConfigureServerWidget::slotModifyServer()
42 {
43 ui->serverSieveListWidget->modifyServerConfig();
44 }
45
slotAddServer()46 void SieveEditorConfigureServerWidget::slotAddServer()
47 {
48 ui->serverSieveListWidget->addServerConfig();
49 }
50
slotDeleteServer()51 void SieveEditorConfigureServerWidget::slotDeleteServer()
52 {
53 QListWidgetItem *item = ui->serverSieveListWidget->currentItem();
54 if (!item) {
55 return;
56 }
57 if (KMessageBox::Yes
58 == KMessageBox::questionYesNo(this,
59 i18n("Do you want to remove this server \'%1\'?", item->text()),
60 i18nc("@title:window", "Remove Sieve Server"),
61 KStandardGuiItem::remove(),
62 KStandardGuiItem::cancel())) {
63 ui->serverSieveListWidget->deleteServerConfig(item);
64 delete item;
65 slotItemSelectionChanged();
66 }
67 }
68
slotItemSelectionChanged()69 void SieveEditorConfigureServerWidget::slotItemSelectionChanged()
70 {
71 const bool hasItemSelected = ui->serverSieveListWidget->currentItem();
72 ui->modifyServer->setEnabled(hasItemSelected);
73 ui->removeServer->setEnabled(hasItemSelected);
74 }
75