From 8163a4cd6d54e0cd4271e13032b45b9c5c6efa4d Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Mon, 1 Jun 2020 23:58:58 +0200 Subject: [PATCH] Improve Entry rendering --- CMakeLists.txt | 4 ++-- src/CMakeLists.txt | 4 ++-- src/main.cpp | 2 ++ src/qml/EntryPage.qml | 19 ++++++++++--------- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dcc4b578..b3b1b956 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ include(KDEClangFormat) include(KDECMakeSettings) include(KDECompilerSettings NO_POLICY_SCOPE) -find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui QuickControls2 Sql) +find_package(Qt5 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Quick Test Gui QuickControls2 Sql WebView) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons Syndication Config I18n) if (ANDROID) @@ -26,7 +26,7 @@ if (ANDROID) find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Kirigami2) find_package(OpenSSL REQUIRED) else() - find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets) + find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Widgets WebEngine) endif() add_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_URL_CAST_FROM_STRING) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1e81ee48..13666fb4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,7 +13,7 @@ set(alligator_SRCS kconfig_add_kcfg_files(alligator_SRCS alligatorsettings.kcfgc GENERATE_MOC) add_executable(alligator ${alligator_SRCS}) -target_link_libraries(alligator PRIVATE Qt5::Core Qt5::Qml Qt5::Quick Qt5::Sql KF5::Syndication KF5::CoreAddons KF5::ConfigGui KF5::I18n) +target_link_libraries(alligator PRIVATE Qt5::Core Qt5::Qml Qt5::Quick Qt5::Sql Qt5::WebView KF5::Syndication KF5::CoreAddons KF5::ConfigGui KF5::I18n) if(ANDROID) target_link_libraries(alligator PRIVATE @@ -35,7 +35,7 @@ if(ANDROID) globe ) else() - target_link_libraries(alligator PRIVATE Qt5::Widgets) + target_link_libraries(alligator PRIVATE Qt5::Widgets Qt5::WebEngine) endif() install(TARGETS alligator ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) diff --git a/src/main.cpp b/src/main.cpp index a190bdb5..3bd4bd62 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ #endif #include +#include #include #include #include @@ -44,6 +45,7 @@ Q_DECL_EXPORT #endif int main(int argc, char *argv[]) { + QtWebView::initialize(); #ifdef Q_OS_ANDROID QGuiApplication app(argc, argv); #else diff --git a/src/qml/EntryPage.qml b/src/qml/EntryPage.qml index 13ae6dac..1379dbde 100644 --- a/src/qml/EntryPage.qml +++ b/src/qml/EntryPage.qml @@ -21,6 +21,7 @@ import QtQuick 2.14 import QtQuick.Controls 2.14 as Controls import QtQuick.Layouts 1.14 +import QtWebView 1.14 import org.kde.kirigami 2.12 as Kirigami @@ -31,17 +32,17 @@ Kirigami.ScrollablePage { property QtObject entry + property var content: "" + page.entry.content + ""; + title: entry.title - ColumnLayout { - Controls.Label { - id: label - baseUrl: page.entry.baseUrl - text: page.entry.content - textFormat: Text.RichText - wrapMode: Text.WordWrap - Layout.fillWidth: true - onLinkActivated: Qt.openUrlExternally(link) + Flickable { + WebView { + width: page.width + height: page.height - 20 + Component.onCompleted: { + loadHtml(page.content, page.entry.baseUrl) + } } } }