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

0001 /* -*- mode: c++; c-basic-offset:4 -*-
0002     crypto/gui/signencryptemailconflictdialog.h
0003 
0004     This file is part of Kleopatra, the KDE keymanager
0005     SPDX-FileCopyrightText: 2009 Klarälvdalens Datakonsult AB
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #pragma once
0011 
0012 #include <QDialog>
0013 
0014 #include <utils/pimpl_ptr.h>
0015 
0016 #include <gpgme++/global.h>
0017 
0018 #include <vector>
0019 
0020 namespace GpgME
0021 {
0022 class Key;
0023 }
0024 
0025 namespace Kleo
0026 {
0027 namespace Crypto
0028 {
0029 class Sender;
0030 class Recipient;
0031 }
0032 }
0033 
0034 namespace Kleo
0035 {
0036 namespace Crypto
0037 {
0038 namespace Gui
0039 {
0040 
0041 class SignEncryptEMailConflictDialog : public QDialog
0042 {
0043     Q_OBJECT
0044 public:
0045     explicit SignEncryptEMailConflictDialog(QWidget *parent = nullptr);
0046     ~SignEncryptEMailConflictDialog() override;
0047 
0048     // Inputs
0049 
0050     void setPresetProtocol(GpgME::Protocol proto);
0051     void setSubject(const QString &subject);
0052 
0053     void setSenders(const std::vector<Sender> &senders);
0054     void setRecipients(const std::vector<Recipient> &recipients);
0055 
0056     void setSign(bool on);
0057     void setEncrypt(bool on);
0058 
0059     void setQuickMode(bool on);
0060 
0061     // To wrap up inputs:
0062     void pickProtocol();
0063     void setConflict(bool conflict);
0064 
0065     // Intermediate
0066 
0067     bool isComplete() const;
0068 
0069     // Outputs
0070 
0071     GpgME::Protocol selectedProtocol() const;
0072     std::vector<GpgME::Key> resolvedSigningKeys() const;
0073     std::vector<GpgME::Key> resolvedEncryptionKeys() const;
0074 
0075     bool isQuickMode() const;
0076 
0077 private:
0078     Q_PRIVATE_SLOT(d, void slotCompleteChanged())
0079     Q_PRIVATE_SLOT(d, void slotShowAllRecipientsToggled(bool))
0080     Q_PRIVATE_SLOT(d, void slotProtocolChanged())
0081     Q_PRIVATE_SLOT(d, void slotCertificateSelectionDialogRequested())
0082     class Private;
0083     kdtools::pimpl_ptr<Private> d;
0084 };
0085 
0086 }
0087 }
0088 }