File indexing completed on 2024-05-12 05:25:40

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "sieveeditorconfigureserverwidget.h"
0008 #include "serversievesettingsdialog.h"
0009 #include "ui_sieveeditorconfigureserverwidget.h"
0010 
0011 #include <KLocalizedString>
0012 #include <KMessageBox>
0013 
0014 SieveEditorConfigureServerWidget::SieveEditorConfigureServerWidget(QWidget *parent)
0015     : QWidget(parent)
0016     , ui(new Ui::SieveEditorConfigureServerWidget)
0017 {
0018     ui->setupUi(this);
0019     connect(ui->modifyServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotModifyServer);
0020     connect(ui->addServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotAddServer);
0021     connect(ui->removeServer, &QPushButton::clicked, this, &SieveEditorConfigureServerWidget::slotDeleteServer);
0022     connect(ui->serverSieveListWidget, &ServerSieveListWidget::itemSelectionChanged, this, &SieveEditorConfigureServerWidget::slotItemSelectionChanged);
0023     slotItemSelectionChanged();
0024 }
0025 
0026 SieveEditorConfigureServerWidget::~SieveEditorConfigureServerWidget()
0027 {
0028     delete ui;
0029 }
0030 
0031 void SieveEditorConfigureServerWidget::readConfig()
0032 {
0033     ui->serverSieveListWidget->readConfig();
0034 }
0035 
0036 void SieveEditorConfigureServerWidget::writeConfig()
0037 {
0038     ui->serverSieveListWidget->writeConfig();
0039 }
0040 
0041 void SieveEditorConfigureServerWidget::slotModifyServer()
0042 {
0043     ui->serverSieveListWidget->modifyServerConfig();
0044 }
0045 
0046 void SieveEditorConfigureServerWidget::slotAddServer()
0047 {
0048     ui->serverSieveListWidget->addServerConfig();
0049 }
0050 
0051 void SieveEditorConfigureServerWidget::slotDeleteServer()
0052 {
0053     QListWidgetItem *item = ui->serverSieveListWidget->currentItem();
0054     if (!item) {
0055         return;
0056     }
0057     if (KMessageBox::ButtonCode::PrimaryAction
0058         == KMessageBox::questionTwoActions(this,
0059                                            i18n("Do you want to remove this server \'%1\'?", item->text()),
0060                                            i18nc("@title:window", "Remove Sieve Server"),
0061                                            KStandardGuiItem::remove(),
0062                                            KStandardGuiItem::cancel())) {
0063         ui->serverSieveListWidget->deleteServerConfig(item);
0064         delete item;
0065         slotItemSelectionChanged();
0066     }
0067 }
0068 
0069 void SieveEditorConfigureServerWidget::slotItemSelectionChanged()
0070 {
0071     const bool hasItemSelected = ui->serverSieveListWidget->currentItem();
0072     ui->modifyServer->setEnabled(hasItemSelected);
0073     ui->removeServer->setEnabled(hasItemSelected);
0074 }
0075 
0076 #include "moc_sieveeditorconfigureserverwidget.cpp"