diff options
Diffstat (limited to 'components/mailviewer/qml/HtmlContent.qml')
-rw-r--r-- | components/mailviewer/qml/HtmlContent.qml | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/components/mailviewer/qml/HtmlContent.qml b/components/mailviewer/qml/HtmlContent.qml new file mode 100644 index 00000000..3ac1bb38 --- /dev/null +++ b/components/mailviewer/qml/HtmlContent.qml | |||
@@ -0,0 +1,81 @@ | |||
1 | /* | ||
2 | Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net> | ||
3 | |||
4 | This program is free software; you can redistribute it and/or modify | ||
5 | it under the terms of the GNU General Public License as published by | ||
6 | the Free Software Foundation; either version 2 of the License, or | ||
7 | (at your option) any later version. | ||
8 | |||
9 | This program is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU General Public License along | ||
15 | with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | import QtQuick 2.4 | ||
20 | import QtQuick.Controls 1.3 | ||
21 | import QtWebEngine 1.4 | ||
22 | |||
23 | import org.kube.framework 1.0 as Kube | ||
24 | |||
25 | Item { | ||
26 | id: root | ||
27 | property string content | ||
28 | //We have to give it a minimum size so the html content starts to expand | ||
29 | property int contentHeight: 10; | ||
30 | |||
31 | height: contentHeight | ||
32 | width: partColumn.width | ||
33 | |||
34 | WebEngineView { | ||
35 | id: htmlView | ||
36 | anchors.fill: parent | ||
37 | Component.onCompleted: loadHtml(content, "file:///") | ||
38 | onContentsSizeChanged: { | ||
39 | //Resizing pixel by pixel causes some mails to grow indefinitely | ||
40 | if (contentsSize.height >= root.contentHeight + 5) { | ||
41 | root.contentHeight = contentsSize.height | ||
42 | } | ||
43 | } | ||
44 | onLoadingChanged: { | ||
45 | if (loadRequest.status == WebEngineLoadRequest.LoadFailedStatus) { | ||
46 | console.warn("Failed to load html content.") | ||
47 | console.warn("Error is ", loadRequest.errorString) | ||
48 | } | ||
49 | } | ||
50 | settings { | ||
51 | webGLEnabled: false | ||
52 | touchIconsEnabled: false | ||
53 | spatialNavigationEnabled: false | ||
54 | screenCaptureEnabled: false | ||
55 | pluginsEnabled: false | ||
56 | localStorageEnabled: false | ||
57 | localContentCanAccessRemoteUrls: false | ||
58 | localContentCanAccessFileUrls: false | ||
59 | linksIncludedInFocusChain: false | ||
60 | javascriptEnabled: false | ||
61 | javascriptCanOpenWindows: false | ||
62 | javascriptCanAccessClipboard: false | ||
63 | hyperlinkAuditingEnabled: false | ||
64 | fullScreenSupportEnabled: false | ||
65 | errorPageEnabled: false | ||
66 | //defaultTextEncoding: ??? | ||
67 | autoLoadImages: true | ||
68 | autoLoadIconsForPage: false | ||
69 | accelerated2dCanvasEnabled: false | ||
70 | //The webview should not steal focus | ||
71 | focusOnNavigationEnabled: false | ||
72 | } | ||
73 | profile: Kube.WebEngineProfile | ||
74 | onContextMenuRequested: function(request) { | ||
75 | request.accepted = true | ||
76 | } | ||
77 | } | ||
78 | onContentChanged: { | ||
79 | htmlView.loadHtml(content, "file:///"); | ||
80 | } | ||
81 | } | ||