diff options
Diffstat (limited to 'kmail/objecttreeparser_p.cpp')
| -rw-r--r-- | kmail/objecttreeparser_p.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/kmail/objecttreeparser_p.cpp b/kmail/objecttreeparser_p.cpp index c0a5eef4..ce7afb10 100644 --- a/kmail/objecttreeparser_p.cpp +++ b/kmail/objecttreeparser_p.cpp @@ -133,8 +133,10 @@ GenericVerifyMemento::~GenericVerifyMemento() { m_keylistjob->slotCancel(); } -DecryptVerifyBodyPartMemento::DecryptVerifyBodyPartMemento( DecryptVerifyJob * job, const TQByteArray & cipherText ) - : CryptoBodyPartMemento(), +DecryptVerifyBodyPartMemento::DecryptVerifyBodyPartMemento( DecryptVerifyJob * job, + Kleo::KeyListJob * klj, + const TQByteArray & cipherText ) + : GenericVerifyMemento(klj), m_cipherText( cipherText ), m_job( job ) { @@ -166,6 +168,8 @@ void DecryptVerifyBodyPartMemento::exec() { saveResult( p.first, p.second, plainText ); m_job->deleteLater(); // exec'ed jobs don't delete themselves m_job = 0; + execKeyListJob(); + setRunning( false ); } void DecryptVerifyBodyPartMemento::saveResult( const DecryptionResult & dr, @@ -175,7 +179,7 @@ void DecryptVerifyBodyPartMemento::saveResult( const DecryptionResult & dr, assert( m_job ); setRunning( false ); m_dr = dr; - m_vr = vr; + setVerificationResult( vr ); m_plainText = plainText; setAuditLog( m_job->auditLogError(), m_job->auditLogAsHtml() ); } @@ -187,6 +191,10 @@ void DecryptVerifyBodyPartMemento::slotResult( const DecryptionResult & dr, saveResult( dr, vr, plainText ); setRunning( false ); m_job = 0; + if ( startKeyListJob() ) + return; + destroyKeyListJob(); + setRunning( false ); notify(); } |
