From a7465aa35b4efd3bfc4bbd9be4d1572d25a05bb2 Mon Sep 17 00:00:00 2001 From: aqua Date: Sat, 27 Aug 2022 15:27:37 +0300 Subject: Rename rView to RekonqView - move rview.hpp to include/ - move src/mainwindow/* to src/ --- plugins/webengine/CMakeLists.txt | 2 +- plugins/webengine/WebEngine.json | 2 +- plugins/webengine/webengineplugin.cpp | 4 +++- plugins/webengine/webengineplugin.hpp | 3 ++- plugins/webengine/webview.cpp | 24 ++++++++++++++++++++++-- plugins/webengine/webview.h | 10 ++++++++-- 6 files changed, 37 insertions(+), 8 deletions(-) (limited to 'plugins/webengine') diff --git a/plugins/webengine/CMakeLists.txt b/plugins/webengine/CMakeLists.txt index f49d9c7c..c1f8145d 100644 --- a/plugins/webengine/CMakeLists.txt +++ b/plugins/webengine/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(WebEnginePlugin MODULE webengineplugin.cpp webengineplugin.hpp webview.cpp webview.h ${PROJECT_SOURCE_DIR}/src/plugins/rplugininterface.hpp - ${PROJECT_SOURCE_DIR}/src/plugins/rview.hpp + ${PROJECT_SOURCE_DIR}/include/rview.hpp ) target_include_directories(WebEnginePlugin PRIVATE ${PROJECT_SOURCE_DIR}/src/plugins) target_link_libraries(WebEnginePlugin PUBLIC Qt6::Core Qt6::WebEngineWidgets) diff --git a/plugins/webengine/WebEngine.json b/plugins/webengine/WebEngine.json index 03e2112c..8f197186 100644 --- a/plugins/webengine/WebEngine.json +++ b/plugins/webengine/WebEngine.json @@ -1,4 +1,4 @@ { "name": "WebEngine", - "schemes": [ "file", "http", "https" ] + "schemes": [ "about", "file", "http", "https" ] } diff --git a/plugins/webengine/webengineplugin.cpp b/plugins/webengine/webengineplugin.cpp index cf6811dc..0c3f2dcd 100644 --- a/plugins/webengine/webengineplugin.cpp +++ b/plugins/webengine/webengineplugin.cpp @@ -10,4 +10,6 @@ #include "webengineplugin.hpp" #include "webview.h" -rView *WebEnginePlugin::view(const QUrl &url) { return new WebView(url, nullptr); } +void WebEnginePlugin::init(RekonqSettings *) {} + +RekonqView *WebEnginePlugin::view(const QUrl &url) { return new WebView(url, nullptr); } diff --git a/plugins/webengine/webengineplugin.hpp b/plugins/webengine/webengineplugin.hpp index 3ee63ff8..dcbc2db8 100644 --- a/plugins/webengine/webengineplugin.hpp +++ b/plugins/webengine/webengineplugin.hpp @@ -19,5 +19,6 @@ class WebEnginePlugin final : public RekonqPluginInterface { public: WebEnginePlugin() = default; - rView *view(const QUrl &url) override; + void init(RekonqSettings *settings) override; + RekonqView *view(const QUrl &url) override; }; diff --git a/plugins/webengine/webview.cpp b/plugins/webengine/webview.cpp index fab941a9..fc2e4642 100644 --- a/plugins/webengine/webview.cpp +++ b/plugins/webengine/webview.cpp @@ -11,7 +11,7 @@ #include #include -WebView::WebView(const QUrl &url, QWidget *parent) : rView(url, parent), view(new QWebEngineView(this)) +WebView::WebView(const QUrl &url, QWidget *parent) : RekonqView(url, parent), view(new QWebEngineView(this)) { auto *layout = new QVBoxLayout; layout->setContentsMargins(0, 0, 0, 0); @@ -19,8 +19,28 @@ WebView::WebView(const QUrl &url, QWidget *parent) : rView(url, parent), view(ne setLayout(layout); connect(view, &QWebEngineView::iconChanged, this, [this](const QIcon &icon) { emit iconChanged(icon); }); - connect(view, &QWebEngineView::urlChanged, this, [this](const QUrl &url) { emit urlChanged(url); }); + connect(view, &QWebEngineView::urlChanged, this, [this](const QUrl &u) { emit urlChanged(u); }); connect(view, &QWebEngineView::titleChanged, this, [this](const QString &title) { emit titleChanged(title); }); + + // load progress + connect(view, &QWebEngineView::loadStarted, this, [this]() { + m_loadProgress = 0; + emit loadStarted(); + }); + connect(view, &QWebEngineView::loadProgress, this, [this](int progress) { + m_loadProgress = progress; + emit loadProgress(progress); + }); + connect(view, &QWebEngineView::loadFinished, this, [this]() { + m_loadProgress = 100; + emit loadFinished(); + }); + view->load(url); } + +void WebView::load(const QUrl &url) { view->load(url); } + +QUrl WebView::url() const { return view->url(); } QString WebView::title() const { return view->title(); } +QIcon WebView::icon() const { return view->icon(); } diff --git a/plugins/webengine/webview.h b/plugins/webengine/webview.h index 5bb90696..103b98b3 100644 --- a/plugins/webengine/webview.h +++ b/plugins/webengine/webview.h @@ -13,15 +13,21 @@ class QWebEngineView; -class WebView final : public rView { +class WebView final : public RekonqView { Q_OBJECT public: explicit WebView(const QUrl &url = QUrl(), QWidget *parent = nullptr); ~WebView() final = default; - QString title() const override; + void load(const QUrl &url) override; + [[nodiscard]] int progress() const override { return m_loadProgress; } + + [[nodiscard]] QUrl url() const override; + [[nodiscard]] QString title() const override; + [[nodiscard]] QIcon icon() const override; private: QWebEngineView *view; + int m_loadProgress = 0; }; -- cgit v1.2.1