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 
0007 #include "dkimmanagerkeywidget.h"
0008 #include "dkimmanagerkey.h"
0009 #include "dkimmanagerkeymodel.h"
0010 #include "dkimmanagerkeytreeview.h"
0011 
0012 #include <KLineEditEventHandler>
0013 #include <KLocalizedString>
0014 #include <QHeaderView>
0015 #include <QLineEdit>
0016 #include <QVBoxLayout>
0017 
0018 using namespace MessageViewer;
0019 DKIMManagerKeyWidget::DKIMManagerKeyWidget(QWidget *parent)
0020     : QWidget(parent)
0021     , mDKIMManagerKeyTreeView(new DKIMManagerKeyTreeView(this))
0022 {
0023     auto mainLayout = new QVBoxLayout(this);
0024     mainLayout->setObjectName(QLatin1StringView("mainlayout"));
0025     mainLayout->setContentsMargins({});
0026 
0027     mDKIMManagerKeyTreeView->setObjectName(QLatin1StringView("mDKIMManagerKeyTreeView"));
0028 
0029     auto searchLineEdit = new QLineEdit(this);
0030     KLineEditEventHandler::catchReturnKey(searchLineEdit);
0031     searchLineEdit->setObjectName(QLatin1StringView("searchlineedit"));
0032     searchLineEdit->setClearButtonEnabled(true);
0033     mainLayout->addWidget(searchLineEdit);
0034     connect(searchLineEdit, &QLineEdit::textChanged, mDKIMManagerKeyTreeView, &DKIMManagerKeyTreeView::setFilterStr);
0035 
0036     mainLayout->addWidget(mDKIMManagerKeyTreeView);
0037 }
0038 
0039 DKIMManagerKeyWidget::~DKIMManagerKeyWidget() = default;
0040 
0041 QByteArray DKIMManagerKeyWidget::saveHeaders() const
0042 {
0043     return mDKIMManagerKeyTreeView->header()->saveState();
0044 }
0045 
0046 void DKIMManagerKeyWidget::restoreHeaders(const QByteArray &header)
0047 {
0048     mDKIMManagerKeyTreeView->header()->restoreState(header);
0049 }
0050 
0051 void DKIMManagerKeyWidget::loadKeys()
0052 {
0053     auto model = new DKIMManagerKeyModel(this);
0054     model->setKeyInfos(DKIMManagerKey::self()->keys());
0055     mDKIMManagerKeyTreeView->setKeyModel(model);
0056 }
0057 
0058 void DKIMManagerKeyWidget::saveKeys()
0059 {
0060     DKIMManagerKey::self()->saveKeys(mDKIMManagerKeyTreeView->keyInfos());
0061 }
0062 
0063 void DKIMManagerKeyWidget::resetKeys()
0064 {
0065     mDKIMManagerKeyTreeView->clear();
0066     loadKeys();
0067 }
0068 
0069 #include "moc_dkimmanagerkeywidget.cpp"