From 21f7851f044cd8b6e38c821ce12d7e1b291cae27 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 29 Apr 2016 16:58:09 +0200 Subject: Push missing files --- components/package/contents/ui/ContentView.qml | 77 ++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 components/package/contents/ui/ContentView.qml (limited to 'components/package/contents/ui/ContentView.qml') diff --git a/components/package/contents/ui/ContentView.qml b/components/package/contents/ui/ContentView.qml new file mode 100644 index 00000000..d4ddabce --- /dev/null +++ b/components/package/contents/ui/ContentView.qml @@ -0,0 +1,77 @@ +import QtQuick 2.4 +import QtQuick.Controls 1.3 +import QtWebKit 3.0 + +Item { + id: root + property int nestingLevel; + property bool isHtml; + property string content; + property string contentType; + height: contentRect.height + Rectangle { + id: contentRect + + //Only for development + // border.width: 1 + // border.color: "black" + // radius: 5 + // anchors.leftMargin: nestingLevel * 5 + + height: contentLoader.height + width: root.width + + Loader { + id: contentLoader + anchors.top: contentRect.top + anchors.left: contentRect.left + width: contentRect.width + sourceComponent: isHtml ? htmlComponent : textComponent + height: isHtml ? item.flickableItem.contentHeight : text.height + onStatusChanged: { + if (isHtml) { + item.flickableItem.loadHtml(root.content, "file:///"); + } + } + } + + Component { + id: textComponent + Text { + id: text + text: content + } + } + Component { + id: htmlComponent + //We need the scrollview so the WebView can fully expand so we have access to the contentHeight + //Otherwise it would just scale the content. + ScrollView { + horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff + verticalScrollBarPolicy: Qt.ScrollBarAlwaysOff + WebView { + id: htmlView + onNavigationRequested: { + // detect URL scheme prefix, most likely an external link + var schemaRE = /^\w+:/; + if (schemaRE.test(request.url)) { + request.action = WebView.AcceptRequest; + } else { + request.action = WebView.IgnoreRequest; + // delegate request.url here + } + } + onLoadingChanged: { + console.warn("Error is ", loadRequest.errorString); + console.warn("Status is ", loadRequest.status); + } + } + } + } + } + onContentChanged: { + if (isHtml) { + contentLoader.item.flickableItem.loadHtml(content, "file:///"); + } + } +} -- cgit v1.2.3