diff --git a/spark-webapp-runtime/mainwindow.cpp b/spark-webapp-runtime/mainwindow.cpp index 0d5a97b..c2fea63 100644 --- a/spark-webapp-runtime/mainwindow.cpp +++ b/spark-webapp-runtime/mainwindow.cpp @@ -10,7 +10,7 @@ #include <QDir> #include <QCloseEvent> -#include "webenginepage.h" +#include "webengineview.h" MainWindow::MainWindow(QString szTitle, QString szUrl, diff --git a/spark-webapp-runtime/spark-webapp-runtime.pro b/spark-webapp-runtime/spark-webapp-runtime.pro index 7336ad4..a76bd94 100644 --- a/spark-webapp-runtime/spark-webapp-runtime.pro +++ b/spark-webapp-runtime/spark-webapp-runtime.pro @@ -1,4 +1,4 @@ -QT += core gui webengine webenginewidgets svg concurrent +QT += core gui webenginewidgets svg concurrent greaterThan(QT_MAJOR_VERSION, 5): QT += widgets @@ -9,20 +9,20 @@ DEFINES += QT_DEPRECATED_WARNINGS CONFIG += c++11 link_pkgconfig PKGCONFIG += dtkwidget -HEADERS += \ - mainwindow.h \ - globaldefine.h \ - httpd.h \ - httplib.h \ - webenginepage.h \ - widget.h +HEADERS += \ + mainwindow.h \ + globaldefine.h \ + httpd.h \ + httplib.h \ + widget.h \ + webengineview.h SOURCES += \ main.cpp \ httpd.cpp \ mainwindow.cpp \ - webenginepage.cpp \ - widget.cpp + widget.cpp \ + webengineview.cpp RESOURCES += \ imgs.qrc diff --git a/spark-webapp-runtime/webenginepage.cpp b/spark-webapp-runtime/webenginepage.cpp deleted file mode 100644 index 3e9e94a..0000000 --- a/spark-webapp-runtime/webenginepage.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "webenginepage.h" - -WebEnginePage::WebEnginePage(QObject *parent) - : QWebEnginePage(parent) -{ -} - -QWebEnginePage *WebEnginePage::createWindow(QWebEnginePage::WebWindowType type) -{ - Q_UNUSED(type) - WebEnginePage *page = new WebEnginePage; - connect(page, &QWebEnginePage::urlChanged, this, &WebEnginePage::on_urlChanged); - return page; -} - -void WebEnginePage::on_urlChanged(const QUrl url) -{ - setUrl(url); - sender()->deleteLater(); -} diff --git a/spark-webapp-runtime/webenginepage.h b/spark-webapp-runtime/webenginepage.h deleted file mode 100644 index afa2d05..0000000 --- a/spark-webapp-runtime/webenginepage.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef WEBENGINEPAGE_H -#define WEBENGINEPAGE_H - -#include <QWebEnginePage> -#include <QWebEngineProfile> -#include <QObject> - -class WebEnginePage : public QWebEnginePage -{ -public: - WebEnginePage(QObject *parent = nullptr); - -protected: - QWebEnginePage *createWindow(WebWindowType type) override; - -private slots: - void on_urlChanged(const QUrl url); - -}; - -#endif // WEBENGINEPAGE_H diff --git a/spark-webapp-runtime/webengineview.cpp b/spark-webapp-runtime/webengineview.cpp new file mode 100644 index 0000000..b1e8cd5 --- /dev/null +++ b/spark-webapp-runtime/webengineview.cpp @@ -0,0 +1,23 @@ +#include "webengineview.h" + +WebEngineView::WebEngineView(QWidget *parent) + : QWebEngineView(parent) +{ + +} + +QWebEngineView *WebEngineView::createWindow(QWebEnginePage::WebWindowType type) +{ + Q_UNUSED(type) + + QWebEngineView *view = new QWebEngineView; + connect(view, &QWebEngineView::urlChanged, this, &WebEngineView::on_urlChanged); + + return view; +} + +void WebEngineView::on_urlChanged(QUrl url) +{ + setUrl(url); + sender()->deleteLater(); +} diff --git a/spark-webapp-runtime/webengineview.h b/spark-webapp-runtime/webengineview.h new file mode 100644 index 0000000..8102441 --- /dev/null +++ b/spark-webapp-runtime/webengineview.h @@ -0,0 +1,21 @@ +#ifndef WEBENGINEVIEW_H +#define WEBENGINEVIEW_H + +#include <QWebEngineView> + +class WebEngineView : public QWebEngineView +{ + Q_OBJECT + +public: + explicit WebEngineView(QWidget *parent = nullptr); + +protected: + QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) override; + +private slots: + void on_urlChanged(QUrl url); + +}; + +#endif // WEBENGINEVIEW_H diff --git a/spark-webapp-runtime/widget.cpp b/spark-webapp-runtime/widget.cpp index cf77e31..4c439a9 100644 --- a/spark-webapp-runtime/widget.cpp +++ b/spark-webapp-runtime/widget.cpp @@ -2,7 +2,7 @@ Widget::Widget(QString szUrl, QWidget *parent) : QWidget(parent) - , m_webEngineView(new QWebEngineView) + , m_webEngineView(new WebEngineView) , m_szUrl(szUrl) , m_spinner(new DSpinner) , main(new QHBoxLayout) @@ -16,7 +16,7 @@ Widget::Widget(QString szUrl, QWidget *parent) m_webEngineView->setAutoFillBackground(false); m_webEngineView->setZoomFactor(1); - WebEnginePage *page = new WebEnginePage; + QWebEnginePage *page = new QWebEnginePage; m_webEngineView->setPage(page); m_webEngineView->setUrl(QUrl(nullptr)); diff --git a/spark-webapp-runtime/widget.h b/spark-webapp-runtime/widget.h index ba41739..f50223e 100644 --- a/spark-webapp-runtime/widget.h +++ b/spark-webapp-runtime/widget.h @@ -2,12 +2,13 @@ #define WIDGET_H #include <QWidget> +#include <QWebEngineProfile> #include <QWebEngineView> #include <QLayout> #include <DSpinner> -#include "webenginepage.h" +#include "webengineview.h" DWIDGET_USE_NAMESPACE @@ -25,7 +26,7 @@ public: void refresh(); private: - QWebEngineView *m_webEngineView; + WebEngineView *m_webEngineView; QString m_szUrl; DSpinner *m_spinner;