diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-01 00:37:02 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-01 00:37:02 +0000 |
commit | cc29364f06178f8f6b457384f2ec37a042bd9d43 (patch) | |
tree | 7c77a3184c698bbf9d98cef09fb1ba8124daceba /kmail/objecttreeparser_p.h | |
parent | 4f6c584bacc8c3c694228f36ada3de77a76614a6 (diff) | |
download | tdepim-cc29364f06178f8f6b457384f2ec37a042bd9d43.tar.gz tdepim-cc29364f06178f8f6b457384f2ec37a042bd9d43.zip |
* Massive set of changes to bring in all fixes and enhancements from the Enterprise PIM branch
* Ensured that the Trinity changes were applied on top of those enhancements, and any redundancy removed
* Added journal read support to the CalDAV resource
* Fixed CalDAV resource to use events URL for tasks and journals when separate URL checkbox unchecked
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1170461 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kmail/objecttreeparser_p.h')
-rw-r--r-- | kmail/objecttreeparser_p.h | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/kmail/objecttreeparser_p.h b/kmail/objecttreeparser_p.h new file mode 100644 index 000000000..d70cd8c70 --- /dev/null +++ b/kmail/objecttreeparser_p.h @@ -0,0 +1,203 @@ +/* -*- mode: C++; c-file-style: "gnu" -*- + objecttreeparser_p.h + + This file is part of KMail, the KDE mail client. + Copyright (c) 2009 Klarälvdalens Datakonsult AB + + KMail is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License, version 2, as + published by the Free Software Foundation. + + KMail is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + In addition, as a special exception, the copyright holders give + permission to link the code of this program with any edition of + the TQt library by Trolltech AS, Norway (or with modified versions + of TQt that use the same license as TQt), and distribute linked + combinations including the two. You must obey the GNU General + Public License in all respects for all of the code used other than + TQt. If you modify this file, you may extend this exception to + your version of the file, but you are not obligated to do so. If + you do not wish to do so, delete this exception statement from + your version. +*/ + +#ifndef _KMAIL_OBJECTTREEPARSER_P_H_ +#define _KMAIL_OBJECTTREEPARSER_P_H_ + +#include <gpgmepp/verificationresult.h> +#include <gpgmepp/decryptionresult.h> +#include <gpgmepp/key.h> + +#include <tqobject.h> +#include <tqcstring.h> +#include <tqstring.h> +#include <tqguardedptr.h> + +#include "isubject.h" +#include "interfaces/bodypart.h" + +namespace Kleo { + class DecryptVerifyJob; + class VerifyDetachedJob; + class VerifyOpaqueJob; + class KeyListJob; +} + +class TQStringList; + +namespace KMail { + + class CryptoBodyPartMemento + : public TQObject, + public KMail::Interface::BodyPartMemento, + public KMail::ISubject + { + Q_OBJECT + public: + CryptoBodyPartMemento(); + ~CryptoBodyPartMemento(); + + /* reimp */ Interface::Observer * asObserver() { return 0; } + /* reimp */ Interface::Observable * asObservable() { return this; } + + bool isRunning() const { return m_running; } + + const TQString & auditLogAsHtml() const { return m_auditLog; } + GpgME::Error auditLogError() const { return m_auditLogError; } + + protected: + void setAuditLog( const GpgME::Error & err, const TQString & log ); + void setRunning( bool running ); + + private: + bool m_running; + TQString m_auditLog; + GpgME::Error m_auditLogError; + }; + + class DecryptVerifyBodyPartMemento + : public CryptoBodyPartMemento + { + Q_OBJECT + public: + DecryptVerifyBodyPartMemento( Kleo::DecryptVerifyJob * job, const TQByteArray & cipherText ); + ~DecryptVerifyBodyPartMemento(); + + bool start(); + void exec(); + + const TQByteArray & plainText() const { return m_plainText; } + const GpgME::DecryptionResult & decryptResult() const { return m_dr; } + const GpgME::VerificationResult & verifyResult() const { return m_vr; } + + private slots: + void slotResult( const GpgME::DecryptionResult & dr, + const GpgME::VerificationResult & vr, + const TQByteArray & plainText ); + + private: + void saveResult( const GpgME::DecryptionResult &, + const GpgME::VerificationResult &, + const TQByteArray & ); + private: + // input: + const TQByteArray m_cipherText; + TQGuardedPtr<Kleo::DecryptVerifyJob> m_job; + // output: + GpgME::DecryptionResult m_dr; + GpgME::VerificationResult m_vr; + TQByteArray m_plainText; + }; + + + class VerifyDetachedBodyPartMemento + : public CryptoBodyPartMemento + { + Q_OBJECT + public: + VerifyDetachedBodyPartMemento( Kleo::VerifyDetachedJob * job, + Kleo::KeyListJob * klj, + const TQByteArray & signature, + const TQByteArray & plainText ); + ~VerifyDetachedBodyPartMemento(); + + bool start(); + void exec(); + + const GpgME::VerificationResult & verifyResult() const { return m_vr; } + const GpgME::Key & signingKey() const { return m_key; } + + private slots: + void slotResult( const GpgME::VerificationResult & vr ); + void slotKeyListJobDone(); + void slotNextKey( const GpgME::Key & ); + + private: + void saveResult( const GpgME::VerificationResult & ); + bool canStartKeyListJob() const; + TQStringList keyListPattern() const; + bool startKeyListJob(); + private: + // input: + const TQByteArray m_signature; + const TQByteArray m_plainText; + TQGuardedPtr<Kleo::VerifyDetachedJob> m_job; + TQGuardedPtr<Kleo::KeyListJob> m_keylistjob; + // output: + GpgME::VerificationResult m_vr; + GpgME::Key m_key; + }; + + + class VerifyOpaqueBodyPartMemento + : public CryptoBodyPartMemento + { + Q_OBJECT + public: + VerifyOpaqueBodyPartMemento( Kleo::VerifyOpaqueJob * job, + Kleo::KeyListJob * klj, + const TQByteArray & signature ); + ~VerifyOpaqueBodyPartMemento(); + + bool start(); + void exec(); + + const TQByteArray & plainText() const { return m_plainText; } + const GpgME::VerificationResult & verifyResult() const { return m_vr; } + const GpgME::Key & signingKey() const { return m_key; } + + private slots: + void slotResult( const GpgME::VerificationResult & vr, + const TQByteArray & plainText ); + void slotKeyListJobDone(); + void slotNextKey( const GpgME::Key & ); + + private: + void saveResult( const GpgME::VerificationResult &, + const TQByteArray & ); + bool canStartKeyListJob() const; + TQStringList keyListPattern() const; + bool startKeyListJob(); + private: + // input: + const TQByteArray m_signature; + TQGuardedPtr<Kleo::VerifyOpaqueJob> m_job; + TQGuardedPtr<Kleo::KeyListJob> m_keylistjob; + // output: + GpgME::VerificationResult m_vr; + TQByteArray m_plainText; + GpgME::Key m_key; + }; + + +} // namespace KMail + +#endif // _KMAIL_OBJECTTREEPARSER_H_ |