repoindex/gui/webpage.cpp

58 lines
1.3 KiB
C++
Raw Permalink Normal View History

2016-02-27 21:00:58 +01:00
#include "./webpage.h"
#include "resources/config.h"
#include <QDesktopServices>
#ifdef REPOINDEX_USE_WEBENGINE
# include <QWebEngineSettings>
# include <QWebEngineView>
#else
# include <QWebSettings>
# include <QWebView>
2016-04-25 22:30:11 +02:00
# include <QWebFrame>
2016-02-27 21:00:58 +01:00
#endif
namespace RepoIndex {
2019-06-10 15:39:56 +02:00
WebPage::WebPage(REPOINDEX_WEB_VIEW *view) :
REPOINDEX_WEB_PAGE(view),
2016-02-27 21:00:58 +01:00
m_view(view)
{
#ifdef REPOINDEX_USE_WEBENGINE
settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
#else
2016-04-25 22:30:11 +02:00
settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
2016-02-27 21:00:58 +01:00
#endif
if(!m_view) {
// delegate to external browser if no view is assigned
2016-04-25 22:30:11 +02:00
#ifdef REPOINDEX_USE_WEBENGINE
2016-02-27 21:00:58 +01:00
connect(this, &WebPage::urlChanged, this, &WebPage::delegateToExternalBrowser);
2016-04-25 22:30:11 +02:00
#else
connect(this->mainFrame(), &QWebFrame::urlChanged, this, &WebPage::delegateToExternalBrowser);
#endif
2019-06-10 15:39:56 +02:00
m_view = new REPOINDEX_WEB_VIEW;
2016-02-27 21:00:58 +01:00
m_view->setPage(this);
}
}
2019-06-10 15:39:56 +02:00
REPOINDEX_WEB_PAGE *WebPage::createWindow(REPOINDEX_WEB_PAGE::WebWindowType type)
2016-02-27 21:00:58 +01:00
{
2019-03-14 18:06:51 +01:00
Q_UNUSED(type)
2016-02-27 21:00:58 +01:00
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);
}
}