File indexing completed on 2024-06-23 05:13:56
0001 /* -*- mode: c++; c-basic-offset:4 -*- 0002 decryptverifyfilescontroller.h 0003 0004 This file is part of Kleopatra, the KDE keymanager 0005 SPDX-FileCopyrightText: 2008 Klarälvdalens Datakonsult AB 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #pragma once 0011 0012 #include "crypto/controller.h" 0013 0014 #include "utils/archivedefinition.h" 0015 #include "utils/types.h" 0016 0017 #include <QMetaType> 0018 0019 #include <memory> 0020 #include <vector> 0021 0022 #include <gpgme++/verificationresult.h> 0023 0024 namespace Kleo 0025 { 0026 namespace Crypto 0027 { 0028 0029 class DecryptVerifyFilesController : public Controller 0030 { 0031 Q_OBJECT 0032 public: 0033 explicit DecryptVerifyFilesController(QObject *parent = nullptr); 0034 explicit DecryptVerifyFilesController(const std::shared_ptr<const ExecutionContext> &ctx, QObject *parent = nullptr); 0035 0036 ~DecryptVerifyFilesController() override; 0037 0038 virtual void setFiles(const QStringList &files); 0039 virtual void setOperation(DecryptVerifyOperation op); 0040 virtual DecryptVerifyOperation operation() const; 0041 virtual void start(); 0042 0043 public Q_SLOTS: 0044 virtual void cancel(); 0045 0046 protected: 0047 std::shared_ptr<ArchiveDefinition> 0048 pick_archive_definition(GpgME::Protocol proto, const std::vector<std::shared_ptr<ArchiveDefinition>> &ads, const QString &filename); 0049 0050 Q_SIGNALS: 0051 void verificationResult(const GpgME::VerificationResult &); 0052 0053 private: 0054 void doTaskDone(const Task *task, const std::shared_ptr<const Task::Result> &) override; 0055 0056 private: 0057 class Private; 0058 std::shared_ptr<Private> d; 0059 Q_PRIVATE_SLOT(d, void slotWizardOperationPrepared()) 0060 Q_PRIVATE_SLOT(d, void slotWizardCanceled()) 0061 Q_PRIVATE_SLOT(d, void schedule()) 0062 }; 0063 0064 } 0065 } 0066 0067 Q_DECLARE_METATYPE(GpgME::VerificationResult)