aboutsummaryrefslogtreecommitdiff
path: root/webengine.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'webengine.hpp')
-rw-r--r--webengine.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/webengine.hpp b/webengine.hpp
index 08cdbe5..dc73d97 100644
--- a/webengine.hpp
+++ b/webengine.hpp
@@ -17,6 +17,28 @@
#error "(The moc has changed too much.)"
#endif
+class WebEnginePage: public QWebEnginePage {
+Q_OBJECT
+public:
+ WebEnginePage(QWebEngineProfile *profile) : QWebEnginePage(profile) {};
+ virtual ~WebEnginePage() = default;
+
+protected:
+ QWebEnginePage *createWindow(WebWindowType){
+ WebEnginePage *page = new WebEnginePage(this->profile());
+ connect(page, &QWebEnginePage::urlChanged, this, &WebEnginePage::onUrlChanged);
+ return page;
+ }
+
+private:
+ void onUrlChanged(const QUrl & url){
+ if(WebEnginePage *page = qobject_cast<WebEnginePage *>(sender())){
+ setUrl(url);
+ page->deleteLater();
+ }
+ }
+};
+
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED