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"