File indexing completed on 2024-05-05 17:43:14
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Ivan Cukic <ivan.cukic (at) kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "vaultdeletionwidget.h" 0008 0009 #include "ui_vaultdeletionwidget.h" 0010 0011 #include <KConfigGroup> 0012 #include <KMessageWidget> 0013 #include <KSharedConfig> 0014 0015 #include <QDBusInterface> 0016 #include <QDBusPendingCall> 0017 0018 class VaultDeletionWidget::Private 0019 { 0020 public: 0021 Ui::VaultDeletionWidget ui; 0022 QString vaultName; 0023 QString vaultDevice; 0024 KSharedConfig::Ptr config; 0025 }; 0026 0027 VaultDeletionWidget::VaultDeletionWidget() 0028 : DialogDsl::DialogModule(true) 0029 , d(new Private()) 0030 { 0031 d->ui.setupUi(this); 0032 0033 auto messageWidget = new KMessageWidget(d->ui.labelWarning->text(), this); 0034 messageWidget->setMessageType(KMessageWidget::Warning); 0035 messageWidget->setCloseButtonVisible(false); 0036 messageWidget->setIcon(QIcon::fromTheme("dialog-warning")); 0037 static_cast<QBoxLayout *>(layout())->insertWidget(0, messageWidget); 0038 0039 d->ui.labelWarning->hide(); 0040 0041 connect(d->ui.textVaultNameConfirmation, &QLineEdit::textEdited, this, [this](const QString &newText) { 0042 d->ui.buttonDeleteVault->setEnabled(d->vaultName == newText); 0043 }); 0044 0045 connect(d->ui.buttonDeleteVault, &QPushButton::clicked, this, [this] { 0046 d->ui.buttonDeleteVault->setEnabled(false); 0047 Q_EMIT requestCancellation(); 0048 0049 QDBusInterface(QStringLiteral("org.kde.kded5"), QStringLiteral("/modules/plasmavault"), QStringLiteral("org.kde.plasmavault")) 0050 .asyncCall("deleteVault", d->vaultDevice, d->vaultName); 0051 }); 0052 } 0053 0054 VaultDeletionWidget::~VaultDeletionWidget() 0055 { 0056 } 0057 0058 PlasmaVault::Vault::Payload VaultDeletionWidget::fields() const 0059 { 0060 return {}; 0061 } 0062 0063 void VaultDeletionWidget::init(const PlasmaVault::Vault::Payload &payload) 0064 { 0065 d->vaultName = payload[KEY_NAME].toString(); 0066 d->vaultDevice = payload[KEY_DEVICE].toString(); 0067 d->ui.buttonDeleteVault->setEnabled(false); 0068 }