diff options
Diffstat (limited to 'nonprism/kdepim/bug333611.patch')
-rw-r--r-- | nonprism/kdepim/bug333611.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/nonprism/kdepim/bug333611.patch b/nonprism/kdepim/bug333611.patch new file mode 100644 index 000000000..44befd8d0 --- /dev/null +++ b/nonprism/kdepim/bug333611.patch @@ -0,0 +1,60 @@ +--- a/messageviewer/src/viewer/objecttreeparser.cpp ++++ b/messageviewer/src/viewer/objecttreeparser.cpp +@@ -696,29 +696,36 @@ + signatureFound = verifyResult.signatures().size() > 0; + signatures = verifyResult.signatures(); + bDecryptionOk = !decryptResult.error(); +- passphraseError = decryptResult.error().isCanceled() +- || decryptResult.error().code() == GPG_ERR_NO_SECKEY; +- actuallyEncrypted = decryptResult.error().code() != GPG_ERR_NO_DATA; +- partMetaData.errorText = QString::fromLocal8Bit(decryptResult.error().asString()); + partMetaData.auditLogError = m->auditLogError(); + partMetaData.auditLog = m->auditLogAsHtml(); +- partMetaData.isEncrypted = actuallyEncrypted; +- if (actuallyEncrypted && decryptResult.numRecipients() > 0) { +- partMetaData.keyId = decryptResult.recipient(0).keyID(); +- } +- +- qCDebug(MESSAGEVIEWER_LOG) << "ObjectTreeParser::decryptMIME: returned from CRYPTPLUG"; +- if (bDecryptionOk) { ++ if (!bDecryptionOk && signatureFound) { ++ //Only a signed part ++ actuallyEncrypted = false; ++ bDecryptionOk = true; + decryptedData = plainText; +- } else if (htmlWriter() && showWarning) { +- decryptedData = "<div style=\"font-size:x-large; text-align:center;" +- "padding:20pt;\">" +- + errorMsg.toUtf8() +- + "</div>"; +- if (!passphraseError) +- partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName) +- + QLatin1String("<br />") +- + i18n("Error: %1", partMetaData.errorText); ++ } else { ++ passphraseError = decryptResult.error().isCanceled() ++ || decryptResult.error().code() == GPG_ERR_NO_SECKEY; ++ actuallyEncrypted = decryptResult.error().code() != GPG_ERR_NO_DATA; ++ partMetaData.errorText = QString::fromLocal8Bit(decryptResult.error().asString()); ++ partMetaData.isEncrypted = actuallyEncrypted; ++ if (actuallyEncrypted && decryptResult.numRecipients() > 0) { ++ partMetaData.keyId = decryptResult.recipient(0).keyID(); ++ } ++ ++ qCDebug(MESSAGEVIEWER_LOG) << "ObjectTreeParser::decryptMIME: returned from CRYPTPLUG"; ++ if (bDecryptionOk) { ++ decryptedData = plainText; ++ } else if (htmlWriter() && showWarning) { ++ decryptedData = "<div style=\"font-size:x-large; text-align:center; padding:20pt;\">" ++ + errorMsg.toUtf8() ++ + "</div>"; ++ if (!passphraseError) { ++ partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName) ++ + QLatin1String("<br />") ++ + i18n("Error: %1", partMetaData.errorText); ++ } ++ } + } + } + } + |