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