File indexing completed on 2025-03-09 04:54:30

0001 /*
0002    SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 #include "dkimmanagerkeydialog.h"
0007 #include "dkimmanagerkeywidget.h"
0008 
0009 #include <KConfigGroup>
0010 #include <KSharedConfig>
0011 #include <QDialogButtonBox>
0012 #include <QVBoxLayout>
0013 
0014 namespace
0015 {
0016 static const char myDKIMManagerKeyDialogConfigGroupName[] = "DKIMManagerKeyDialog";
0017 }
0018 
0019 using namespace MessageViewer;
0020 DKIMManagerKeyDialog::DKIMManagerKeyDialog(QWidget *parent)
0021     : QDialog(parent)
0022     , mManagerWidget(new DKIMManagerKeyWidget(this))
0023 {
0024     auto mainLayout = new QVBoxLayout(this);
0025     mainLayout->setObjectName(QLatin1StringView("mainlayout"));
0026 
0027     mManagerWidget->setObjectName(QLatin1StringView("managerWidget"));
0028     mainLayout->addWidget(mManagerWidget);
0029 
0030     auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, this);
0031     buttonBox->setObjectName(QLatin1StringView("buttonbox"));
0032     connect(buttonBox, &QDialogButtonBox::accepted, this, &DKIMManagerKeyDialog::slotAccept);
0033     connect(buttonBox, &QDialogButtonBox::rejected, this, &DKIMManagerKeyDialog::reject);
0034     mainLayout->addWidget(buttonBox);
0035     loadKeys();
0036     readConfig();
0037 }
0038 
0039 DKIMManagerKeyDialog::~DKIMManagerKeyDialog()
0040 {
0041     writeConfig();
0042 }
0043 
0044 void DKIMManagerKeyDialog::readConfig()
0045 {
0046     KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myDKIMManagerKeyDialogConfigGroupName));
0047     mManagerWidget->restoreHeaders(group.readEntry("Header", QByteArray()));
0048     const QSize size = group.readEntry("Size", QSize(600, 400));
0049     if (size.isValid()) {
0050         resize(size);
0051     }
0052 }
0053 
0054 void DKIMManagerKeyDialog::writeConfig()
0055 {
0056     KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myDKIMManagerKeyDialogConfigGroupName));
0057     group.writeEntry("Header", mManagerWidget->saveHeaders());
0058     group.writeEntry("Size", size());
0059     group.sync();
0060 }
0061 
0062 void DKIMManagerKeyDialog::loadKeys()
0063 {
0064     mManagerWidget->loadKeys();
0065 }
0066 
0067 void DKIMManagerKeyDialog::slotAccept()
0068 {
0069     mManagerWidget->saveKeys();
0070 }
0071 
0072 #include "moc_dkimmanagerkeydialog.cpp"