File indexing completed on 2024-06-23 05:13:49

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/gui/decryptverifyoperationwidget.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 <QWidget>
0013 
0014 #include <utils/pimpl_ptr.h>
0015 
0016 #include <memory>
0017 #include <vector>
0018 
0019 namespace Kleo
0020 {
0021 class ArchiveDefinition;
0022 }
0023 
0024 namespace Kleo
0025 {
0026 namespace Crypto
0027 {
0028 namespace Gui
0029 {
0030 
0031 class DecryptVerifyOperationWidget : public QWidget
0032 {
0033     Q_OBJECT
0034     Q_ENUMS(Mode)
0035     Q_PROPERTY(Mode mode READ mode WRITE setMode)
0036     Q_PROPERTY(QString inputFileName READ inputFileName WRITE setInputFileName)
0037     Q_PROPERTY(QString signedDataFileName READ signedDataFileName WRITE setSignedDataFileName)
0038 public:
0039     explicit DecryptVerifyOperationWidget(QWidget *parent = nullptr);
0040     ~DecryptVerifyOperationWidget() override;
0041 
0042     enum Mode {
0043         VerifyDetachedWithSignature,
0044         VerifyDetachedWithSignedData,
0045         DecryptVerifyOpaque,
0046     };
0047     void setMode(Mode mode, const std::shared_ptr<ArchiveDefinition> &ad);
0048     void setMode(Mode mode);
0049     Mode mode() const;
0050 
0051     void setInputFileName(const QString &name);
0052     QString inputFileName() const;
0053 
0054     void setSignedDataFileName(const QString &name);
0055     QString signedDataFileName() const;
0056 
0057     void setArchiveDefinitions(const std::vector<std::shared_ptr<ArchiveDefinition>> &ads);
0058     std::shared_ptr<ArchiveDefinition> selectedArchiveDefinition() const;
0059 
0060 Q_SIGNALS:
0061     void changed();
0062 
0063 private:
0064     class Private;
0065     kdtools::pimpl_ptr<Private> d;
0066     Q_PRIVATE_SLOT(d, void enableDisableWidgets())
0067 };
0068 
0069 }
0070 }
0071 }