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

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "dkimchecksignaturejob.h"
0010 #include "messageviewer_export.h"
0011 #include <Akonadi/Item>
0012 #include <KMime/Message>
0013 #include <QObject>
0014 
0015 namespace MessageViewer
0016 {
0017 /**
0018  * @brief The DKIMManager class
0019  * @author Laurent Montel <montel@kde.org>
0020  */
0021 class MESSAGEVIEWER_EXPORT DKIMManager : public QObject
0022 {
0023     Q_OBJECT
0024 public:
0025     explicit DKIMManager(QObject *parent = nullptr);
0026     ~DKIMManager() override;
0027     static DKIMManager *self();
0028 
0029     void checkDKim(const KMime::Message::Ptr &message);
0030     void checkDKim(const Akonadi::Item &item);
0031 
0032     void clearInfoWidget();
0033 
0034     [[nodiscard]] DKIMCheckPolicy policy() const;
0035     void setPolicy(const DKIMCheckPolicy &policy);
0036     void recheckDKim(const Akonadi::Item &item);
0037 Q_SIGNALS:
0038     void result(const MessageViewer::DKIMCheckSignatureJob::CheckSignatureResult &checkResult, Akonadi::Item::Id id);
0039     void clearInfo();
0040 
0041 private:
0042     MESSAGEVIEWER_NO_EXPORT void checkFullInfo(const Akonadi::Item &item);
0043     DKIMCheckPolicy mCheckPolicy;
0044 };
0045 }