File indexing completed on 2025-03-09 04:54:30
0001 /* 0002 SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "dkimruledialog.h" 0008 #include "dkimrulewidget.h" 0009 0010 #include <KConfigGroup> 0011 #include <KLocalizedString> 0012 #include <KSharedConfig> 0013 #include <QDialogButtonBox> 0014 #include <QPushButton> 0015 #include <QVBoxLayout> 0016 0017 namespace 0018 { 0019 static const char myDKIMRuleDialogConfigGroupName[] = "DKIMRuleDialog"; 0020 } 0021 using namespace MessageViewer; 0022 DKIMRuleDialog::DKIMRuleDialog(QWidget *parent) 0023 : QDialog(parent) 0024 , mRuleWidget(new DKIMRuleWidget(this)) 0025 { 0026 setWindowTitle(i18nc("@title:window", "Add Rule")); 0027 0028 auto mainLayout = new QVBoxLayout(this); 0029 mainLayout->setObjectName(QLatin1StringView("mainlayout")); 0030 0031 mRuleWidget->setObjectName(QLatin1StringView("rulewidget")); 0032 mainLayout->addWidget(mRuleWidget); 0033 0034 auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); 0035 buttonBox->setObjectName(QLatin1StringView("buttonBox")); 0036 mainLayout->addWidget(buttonBox); 0037 0038 mOkButton = buttonBox->button(QDialogButtonBox::Ok); 0039 mOkButton->setEnabled(false); 0040 0041 connect(mRuleWidget, &DKIMRuleWidget::updateOkButtonRequested, this, [this](bool enabled) { 0042 mOkButton->setEnabled(enabled); 0043 }); 0044 0045 connect(buttonBox, &QDialogButtonBox::accepted, this, &DKIMRuleDialog::accept); 0046 connect(buttonBox, &QDialogButtonBox::rejected, this, &DKIMRuleDialog::reject); 0047 readConfig(); 0048 } 0049 0050 DKIMRuleDialog::~DKIMRuleDialog() 0051 { 0052 writeConfig(); 0053 } 0054 0055 void DKIMRuleDialog::readConfig() 0056 { 0057 KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myDKIMRuleDialogConfigGroupName)); 0058 const QSize size = group.readEntry("Size", QSize(600, 400)); 0059 if (size.isValid()) { 0060 resize(size); 0061 } 0062 } 0063 0064 void DKIMRuleDialog::writeConfig() 0065 { 0066 KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myDKIMRuleDialogConfigGroupName)); 0067 group.writeEntry("Size", size()); 0068 group.sync(); 0069 } 0070 0071 void DKIMRuleDialog::loadRule(const MessageViewer::DKIMRule &rule) 0072 { 0073 setWindowTitle(i18nc("@title:window", "Modify Rule")); 0074 mRuleWidget->loadRule(rule); 0075 } 0076 0077 MessageViewer::DKIMRule DKIMRuleDialog::rule() const 0078 { 0079 return mRuleWidget->rule(); 0080 } 0081 0082 #include "moc_dkimruledialog.cpp"