diff options
Diffstat (limited to 'webengine.hpp')
| -rw-r--r-- | webengine.hpp | 22 |
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 |