Warning, /pim/mimetreeparser/src/quick/qml/private/HtmlPart.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2016 Michael Bohlender <michael.bohlender@kdemail.net> 0002 // SPDX-License-Identifier: GPL-2.0-or-later 0003 0004 0005 import QtQuick 2.7 0006 import QtQuick.Controls 2.15 as QQC2 0007 import QtWebEngine 1.4 0008 import QtQuick.Window 2.0 0009 0010 import org.kde.pim.mimetreeparser 1.0 0011 0012 Item { 0013 id: root 0014 objectName: "htmlPart" 0015 property string content 0016 //We have to give it a minimum size so the html content starts to expand 0017 property int minimumSize: 10 0018 property int contentHeight: minimumSize 0019 property int contentWidth: minimumSize 0020 property string searchString 0021 property bool autoLoadImages: false 0022 0023 onSearchStringChanged: { 0024 htmlView.findText(searchString) 0025 } 0026 onContentChanged: { 0027 htmlView.loadHtml(content, "file:///"); 0028 } 0029 0030 QQC2.ScrollView { 0031 anchors.fill: parent 0032 Flickable { 0033 id: flickable 0034 0035 clip: true 0036 boundsBehavior: Flickable.StopAtBounds 0037 0038 WebEngineView { 0039 id: htmlView 0040 objectName: "htmlView" 0041 anchors.fill: parent 0042 0043 Component.onCompleted: loadHtml(content, "file:///") 0044 onLoadingChanged: loadingInfo => { 0045 if (loadingInfo.status == WebEngineView.LoadFailedStatus) { 0046 console.warn("Failed to load html content.") 0047 console.warn("Error is ", loadingInfo.errorString) 0048 } 0049 root.contentWidth = Math.max(contentsSize.width, flickable.minimumSize) 0050 0051 if (loadingInfo.status == WebEngineView.LoadSucceededStatus) { 0052 runJavaScript("[document.body.scrollHeight, document.body.scrollWidth, document.documentElement.scrollHeight]", function(result) { 0053 root.contentHeight = Math.min(Math.max(result[0], result[2]), 4000); 0054 root.contentWidth = Math.min(Math.max(result[1], flickable.width), 2000) 0055 }); 0056 } 0057 } 0058 onLinkHovered: hoveredUrl => { 0059 // Qt 6.6.1 needs to toString otherwise we get a compile error 0060 // https://bugreports.qt.io/browse/QTBUG-119165 0061 console.debug("Link hovered ", hoveredUrl.toString()) 0062 } 0063 onNavigationRequested: request => { 0064 console.debug("Nav request ", request.navigationType, request.url) 0065 if (request.navigationType == WebEngineNavigationRequest.LinkClickedNavigation) { 0066 Qt.openUrlExternally(request.url) 0067 request.action = WebEngineNavigationRequest.IgnoreRequest 0068 } 0069 } 0070 settings { 0071 webGLEnabled: false 0072 touchIconsEnabled: false 0073 spatialNavigationEnabled: false 0074 screenCaptureEnabled: false 0075 pluginsEnabled: false 0076 localStorageEnabled: false 0077 localContentCanAccessRemoteUrls: false 0078 localContentCanAccessFileUrls: false 0079 linksIncludedInFocusChain: false 0080 javascriptEnabled: true 0081 javascriptCanOpenWindows: false 0082 javascriptCanAccessClipboard: false 0083 hyperlinkAuditingEnabled: false 0084 fullScreenSupportEnabled: false 0085 errorPageEnabled: false 0086 //defaultTextEncoding: ??? 0087 autoLoadImages: root.autoLoadImages 0088 autoLoadIconsForPage: false 0089 accelerated2dCanvasEnabled: false 0090 //The webview should not steal focus 0091 focusOnNavigationEnabled: false 0092 } 0093 profile { 0094 offTheRecord: true 0095 httpCacheType: WebEngineProfile.NoCache 0096 persistentCookiesPolicy: WebEngineProfile.NoPersistentCookies 0097 } 0098 onContextMenuRequested: request => { 0099 request.accepted = true 0100 } 0101 } 0102 } 0103 } 0104 }