File indexing completed on 2024-06-16 04:55:59

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/signencryptfilescontroller.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2007 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/pimpl_ptr.h>
0015 
0016 #include <gpgme++/global.h>
0017 
0018 #include <memory>
0019 #include <vector>
0020 
0021 namespace Kleo
0022 {
0023 namespace Crypto
0024 {
0025 
0026 class SignEncryptFilesController : public Controller
0027 {
0028     Q_OBJECT
0029 public:
0030     explicit SignEncryptFilesController(QObject *parent = nullptr);
0031     explicit SignEncryptFilesController(const std::shared_ptr<const ExecutionContext> &ctx, QObject *parent = nullptr);
0032     ~SignEncryptFilesController() override;
0033 
0034     void setProtocol(GpgME::Protocol proto);
0035     GpgME::Protocol protocol() const;
0036     // const char * protocolAsString() const;
0037 
0038     enum Operation {
0039         SignDisallowed = 0,
0040         SignAllowed = 1,
0041         SignSelected = 2,
0042 
0043         SignMask = SignAllowed | SignSelected,
0044 
0045         EncryptDisallowed = 0,
0046         EncryptAllowed = 4,
0047         EncryptSelected = 8,
0048 
0049         EncryptMask = EncryptAllowed | EncryptSelected,
0050 
0051         ArchiveDisallowed = 0,
0052         ArchiveAllowed = 16,
0053         ArchiveForced = 32,
0054 
0055         ArchiveMask = ArchiveAllowed | ArchiveForced
0056     };
0057     void setOperationMode(unsigned int mode);
0058     unsigned int operationMode() const;
0059 
0060     void setFiles(const QStringList &files);
0061 
0062     void start();
0063 
0064 public Q_SLOTS:
0065     void cancel();
0066 
0067 private:
0068     void doTaskDone(const Task *task, const std::shared_ptr<const Task::Result> &) override;
0069 
0070     class Private;
0071     kdtools::pimpl_ptr<Private> d;
0072     Q_PRIVATE_SLOT(d, void slotWizardOperationPrepared())
0073     Q_PRIVATE_SLOT(d, void slotWizardCanceled())
0074     Q_PRIVATE_SLOT(d, void schedule())
0075 };
0076 
0077 }
0078 }