summaryrefslogtreecommitdiffstats
path: root/framework/src/domain/mime/partmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/domain/mime/partmodel.cpp')
-rw-r--r--framework/src/domain/mime/partmodel.cpp52
1 files changed, 28 insertions, 24 deletions
diff --git a/framework/src/domain/mime/partmodel.cpp b/framework/src/domain/mime/partmodel.cpp
index bf11b52d..c4e002b7 100644
--- a/framework/src/domain/mime/partmodel.cpp
+++ b/framework/src/domain/mime/partmodel.cpp
@@ -139,6 +139,32 @@ static QString addCss(const QString &s)
139 return header + s + QStringLiteral("</body></html>"); 139 return header + s + QStringLiteral("</body></html>");
140} 140}
141 141
142
143SignatureInfo *signatureInfo(MimeTreeParser::MessagePart *messagePart)
144{
145 auto signatureInfo = new SignatureInfo;
146 const auto signatureParts = messagePart->signatures();
147 if (signatureParts.size() > 1) {
148 qWarning() << "Can't deal with more than one signature";
149 }
150 for (const auto &p : signatureParts) {
151 signatureInfo->keyId = p->partMetaData()->keyId;
152 signatureInfo->keyMissing = p->partMetaData()->sigSummary & GpgME::Signature::KeyMissing;
153 signatureInfo->keyExpired = p->partMetaData()->sigSummary & GpgME::Signature::KeyExpired;
154 signatureInfo->keyRevoked = p->partMetaData()->sigSummary & GpgME::Signature::KeyRevoked;
155 signatureInfo->sigExpired = p->partMetaData()->sigSummary & GpgME::Signature::SigExpired;
156 signatureInfo->crlMissing = p->partMetaData()->sigSummary & GpgME::Signature::CrlMissing;
157 signatureInfo->crlTooOld = p->partMetaData()->sigSummary & GpgME::Signature::CrlTooOld;
158 signatureInfo->signer = p->partMetaData()->signer;
159 signatureInfo->signClass = p->partMetaData()->signClass;
160 signatureInfo->signerMailAddresses = p->partMetaData()->signerMailAddresses;
161 signatureInfo->signatureIsGood = p->partMetaData()->isGoodSignature;
162 signatureInfo->keyIsTrusted = p->partMetaData()->keyTrust & GpgME::Signature::Full ||
163 p->partMetaData()->keyTrust & GpgME::Signature::Ultimate;
164 }
165 return signatureInfo;
166}
167
142QVariant PartModel::data(const QModelIndex &index, int role) const 168QVariant PartModel::data(const QModelIndex &index, int role) const
143{ 169{
144 if (!index.isValid()) { 170 if (!index.isValid()) {
@@ -236,30 +262,8 @@ QVariant PartModel::data(const QModelIndex &index, int role) const
236 //No info 262 //No info
237 return "unknown"; 263 return "unknown";
238 } 264 }
239 case SignatureDetails: { 265 case SignatureDetails:
240 auto signatureInfo = new SignatureInfo; 266 return QVariant::fromValue(signatureInfo(messagePart));
241
242 const auto signatureParts = messagePart->signatures();
243 if (signatureParts.size() > 1) {
244 qWarning() << "Can't deal with more than one signature";
245 }
246 for (const auto &p : signatureParts) {
247 signatureInfo->mKeyId = p->partMetaData()->keyId;
248 signatureInfo->mKeyMissing = p->partMetaData()->sigSummary & GpgME::Signature::KeyMissing;
249 signatureInfo->mKeyExpired = p->partMetaData()->sigSummary & GpgME::Signature::KeyExpired;
250 signatureInfo->mKeyRevoked = p->partMetaData()->sigSummary & GpgME::Signature::KeyRevoked;
251 signatureInfo->mSigExpired = p->partMetaData()->sigSummary & GpgME::Signature::SigExpired;
252 signatureInfo->mCrlMissing = p->partMetaData()->sigSummary & GpgME::Signature::CrlMissing;
253 signatureInfo->mCrlTooOld = p->partMetaData()->sigSummary & GpgME::Signature::CrlTooOld;
254 signatureInfo->mSigner = p->partMetaData()->signer;
255 signatureInfo->mSignClass = p->partMetaData()->signClass;
256 signatureInfo->mSignerMailAddresses = p->partMetaData()->signerMailAddresses;
257 signatureInfo->mSignatureIsGood = p->partMetaData()->isGoodSignature;
258 signatureInfo->mKeyIsTrusted = p->partMetaData()->keyTrust & GpgME::Signature::Full ||
259 p->partMetaData()->keyTrust & GpgME::Signature::Ultimate;
260 }
261 return QVariant::fromValue(signatureInfo);
262 }
263 case ErrorType: 267 case ErrorType:
264 return messagePart->error(); 268 return messagePart->error();
265 case ErrorString: { 269 case ErrorString: {