File indexing completed on 2024-06-16 04:55: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)