From d00d3bb194c5e4fd061dee3a600231d6dd467440 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 20 Feb 2018 13:21:58 +0100 Subject: Add key id to encryption info --- components/mailviewer/qml/MailDataModel.qml | 3 ++- framework/src/domain/mime/partmodel.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/components/mailviewer/qml/MailDataModel.qml b/components/mailviewer/qml/MailDataModel.qml index ec7f8e74..d960b2ac 100644 --- a/components/mailviewer/qml/MailDataModel.qml +++ b/components/mailviewer/qml/MailDataModel.qml @@ -83,7 +83,8 @@ DelegateModel { color: getColor(model.securityLevel) backgroundOpacity: 0.5 visible: model.encrypted - tooltip: qsTr("This message is encrypted."); + tooltip: qsTr("This message is encrypted to the key: %1").arg(model.encryptionDetails.keyId); + //FIXME make text copyable // Kube.SelectableItem { // visualParent: encryptedButton diff --git a/framework/src/domain/mime/partmodel.cpp b/framework/src/domain/mime/partmodel.cpp index c363da33..4c53906d 100644 --- a/framework/src/domain/mime/partmodel.cpp +++ b/framework/src/domain/mime/partmodel.cpp @@ -94,6 +94,7 @@ QHash PartModel::roleNames() const roles[IsErrorRole] = "error"; roles[SenderRole] = "sender"; roles[SignatureDetails] = "signatureDetails"; + roles[EncryptionDetails] = "encryptionDetails"; roles[DateRole] = "date"; return roles; } @@ -139,6 +140,18 @@ static QString addCss(const QString &s) return header + s + QStringLiteral(""); } +SignatureInfo *encryptionInfo(MimeTreeParser::MessagePart *messagePart) +{ + auto signatureInfo = new SignatureInfo; + const auto encryptions = messagePart->encryptions(); + if (encryptions.size() > 1) { + qWarning() << "Can't deal with more than one encryption"; + } + for (const auto &p : encryptions) { + signatureInfo->keyId = p->partMetaData()->keyId; + } + return signatureInfo; +}; SignatureInfo *signatureInfo(MimeTreeParser::MessagePart *messagePart) { @@ -266,6 +279,8 @@ QVariant PartModel::data(const QModelIndex &index, int role) const } case SignatureDetails: return QVariant::fromValue(signatureInfo(messagePart)); + case EncryptionDetails: + return QVariant::fromValue(encryptionInfo(messagePart)); case ErrorType: return messagePart->error(); case ErrorString: { -- cgit v1.2.3