From d5c693151017daf4d9cee0171e401eae489a79d4 Mon Sep 17 00:00:00 2001 From: Till Adam Date: Mon, 20 Aug 2007 11:45:34 +0000 Subject: [PATCH] Make sure to store the state of the crypto actions when saving a mail to drafts, but only if the state of the mail itself should not be used as indication of the state of the actions. This is governd by the option to "never sign and encrypt when saving to drafts" in the security settings. Prokde35-z item 44. BUG: 103240 svn path=/branches/kdepim/enterprise/kdepim/; revision=702320 --- kmcomposewin.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/kmcomposewin.cpp b/kmcomposewin.cpp index 0605ce688..3023aba40 100644 --- a/kmcomposewin.cpp +++ b/kmcomposewin.cpp @@ -1835,6 +1835,10 @@ void KMComposeWin::setMsg(KMMessage* newMsg, bool mayAutoSign, break; } + // if these headers are present, the state of the message should be overruled + mLastSignActionState = (mMsg->headerField( "X-KMail-SignatureActionEnabled" ) == "true"); + mLastEncryptActionState = (mMsg->headerField( "X-KMail-EncryptActionEnabled" ) == "true"); + mLastIdentityHasSigningKey = !ident.pgpSigningKey().isEmpty() || !ident.smimeSigningKey().isEmpty(); mLastIdentityHasEncryptionKey = !ident.pgpEncryptionKey().isEmpty() || !ident.smimeEncryptionKey().isEmpty(); @@ -4010,6 +4014,17 @@ void KMComposeWin::doSend( KMail::MessageSender::SendMethod method, } } + if (neverEncrypt && saveIn != KMComposeWin::None ) { + // we can't use the state of the mail itself, to remember the + // signing and encryption state, so let's add a header instead + mMsg->setHeaderField( "X-KMail-SignatureActionEnabled", mSignAction->isChecked()? "true":"false" ); + mMsg->setHeaderField( "X-KMail-EncryptActionEnabled", mEncryptAction->isChecked()? "true":"false" ); + } else { + mMsg->removeHeaderField( "X-KMail-SignatureActionEnabled" ); + mMsg->removeHeaderField( "X-KMail-EncryptActionEnabled" ); + } + + kdDebug(5006) << "KMComposeWin::doSend() - calling applyChanges()" << endl; applyChanges( neverEncrypt );