summaryrefslogtreecommitdiffstats
path: root/components/mailviewer/contents/ui/MailDataModel.qml
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-05-01 22:42:49 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-05-02 10:03:57 +0200
commitdd582091bc72ddf61a66d2bc3a3e0ce47f2296b5 (patch)
tree87c75371e5076b70c9cc09157f4cb88ca45a4ad2 /components/mailviewer/contents/ui/MailDataModel.qml
parent4e416d546a68513f05ef10d41d05e0a9c6d5ecf6 (diff)
downloadkube-dd582091bc72ddf61a66d2bc3a3e0ce47f2296b5.tar.gz
kube-dd582091bc72ddf61a66d2bc3a3e0ce47f2296b5.zip
Mailviewer
Diffstat (limited to 'components/mailviewer/contents/ui/MailDataModel.qml')
-rw-r--r--components/mailviewer/contents/ui/MailDataModel.qml86
1 files changed, 62 insertions, 24 deletions
diff --git a/components/mailviewer/contents/ui/MailDataModel.qml b/components/mailviewer/contents/ui/MailDataModel.qml
index e0e65c49..8a42630a 100644
--- a/components/mailviewer/contents/ui/MailDataModel.qml
+++ b/components/mailviewer/contents/ui/MailDataModel.qml
@@ -22,6 +22,27 @@ import QtQml.Models 2.2
22DelegateModel { 22DelegateModel {
23 id: mailDataModel 23 id: mailDataModel
24 property bool debug: true 24 property bool debug: true
25 function getPartType(type, hasModelChildren, forcePlain) {
26 switch (type) {
27 case "PlainTextContent":
28 case "Content":
29 return "plain";
30 case "HtmlContent":
31 if (forcePlain) {
32 return "plain";
33 }
34 return "html";
35 case "Signature":
36 return "signature";
37 case "Encryption":
38 return "encryption";
39 }
40 if (hasModelChildren) {
41 return "envelope";
42 }
43 return "";
44 }
45
25 delegate: Item { 46 delegate: Item {
26 id: partColumn 47 id: partColumn
27 width: parent.width 48 width: parent.width
@@ -36,30 +57,47 @@ DelegateModel {
36 width: parent.width 57 width: parent.width
37 } 58 }
38 Component.onCompleted: { 59 Component.onCompleted: {
39 switch (model.type) { 60 var isHtml = false
40 case "PlainTextContent": 61 var forcePlain = false
41 case "Content": 62 var partType = getPartType(model.type, model.hasModelChildren, forcePlain);
42 partLoader.source = "TextContent.qml" 63
43 partLoader.item.debug = mailDataModel.debug 64 switch (partType) {
44 return; 65 case "plain":
45 case "HtmlContent": 66 partLoader.setSource("TextContent.qml",
46 partLoader.source = "HtmlContent.qml" 67 {"isHtml": isHtml,
47 return; 68 "content": model.content,
48 case "Signature": 69 "embedded": model.embeded,
49 partLoader.source = "SignaturePart.qml" 70 "type": model.type,
50 partLoader.item.rootIndex = mailDataModel.modelIndex(index) 71 "debug": debug})
51 partLoader.item.debug = mailDataModel.debug 72 break
52 return; 73 case "html":
53 case "Encryption": 74 partLoader.setSource("HtmlContent.qml",
54 partLoader.source = "EncryptionPart.qml" 75 {"content": model.content,
55 partLoader.item.rootIndex = mailDataModel.modelIndex(index) 76 "debug": debug})
56 partLoader.item.debug = mailDataModel.debug 77 break;
57 return; 78 case "signature":
58 } 79 partLoader.setSource("SignaturePart.qml",
59 if (model.hasModelChildren) { 80 {"rootIndex": mailDataModel.modelIndex(index),
60 partLoader.source = "MailPart.qml" 81 "securityLevel": model.securityLevel,
61 partLoader.item.rootIndex = mailDataModel.modelIndex(index) 82 "type": model.type,
62 partLoader.item.debug = mailDataModel.debug 83 "debug": debug})
84 break;
85 case "encryption":
86 partLoader.setSource("EncryptionPart.qml",
87 {"rootIndex": mailDataModel.modelIndex(index),
88 "securityLevel": model.securityLevel,
89 "type": model.type,
90 "model": mailDataModel.model,
91 "errorType": model.errorType,
92 "errorString": model.errorString,
93 "debug": debug})
94 break;
95 case "envelope":
96 partLoader.setSource("MailPart.qml",
97 {"rootIndex": mailDataModel.modelIndex(index),
98 "model": mailDataModel.model,
99 "debug": debug})
100 break;
63 } 101 }
64 } 102 }
65 } 103 }