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);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|