--- 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 = "
" - + errorMsg.toUtf8() - + "
"; - if (!passphraseError) - partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName) - + QLatin1String("
") - + 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 = "
" + + errorMsg.toUtf8() + + "
"; + if (!passphraseError) { + partMetaData.errorText = i18n("Crypto plug-in \"%1\" could not decrypt the data.", cryptPlugLibName) + + QLatin1String("
") + + i18n("Error: %1", partMetaData.errorText); + } + } } } }