#include "./webpage.h" #include "resources/config.h" #include #ifdef REPOINDEX_USE_WEBENGINE # include # include #else # include # include # include #endif namespace RepoIndex { WebPage::WebPage(WEB_VIEW_PROVIDER *view) : WEB_PAGE_PROVIDER(view), m_view(view) { #ifdef REPOINDEX_USE_WEBENGINE settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true); #else settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true); #endif if(!m_view) { // delegate to external browser if no view is assigned #ifdef REPOINDEX_USE_WEBENGINE connect(this, &WebPage::urlChanged, this, &WebPage::delegateToExternalBrowser); #else connect(this->mainFrame(), &QWebFrame::urlChanged, this, &WebPage::delegateToExternalBrowser); #endif m_view = new WEB_VIEW_PROVIDER; m_view->setPage(this); } } WEB_PAGE_PROVIDER *WebPage::createWindow(WEB_PAGE_PROVIDER::WebWindowType type) { return new WebPage; } void WebPage::delegateToExternalBrowser(const QUrl &url) { openUrlExternal(url); // this page and the associated view are useless m_view->deleteLater(); deleteLater(); } void WebPage::openUrlExternal(const QUrl &url) { QDesktopServices::openUrl(url); } }