summaryrefslogtreecommitdiffstats
path: root/kmail/objecttreeparser_p.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmail/objecttreeparser_p.cpp')
-rw-r--r--kmail/objecttreeparser_p.cpp14
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();
}