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 }