File indexing completed on 2024-06-23 05:13: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 }