mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-07 21:42:31 +02:00
Working on Qt 5.6 compatibility
This commit is contained in:
parent
9e7cd92a96
commit
20deae3242
6 changed files with 35 additions and 37 deletions
|
@ -42,12 +42,12 @@ endif ()
|
|||
if (ANDROID)
|
||||
set(PLATFORM_QT_COMPONENTS AndroidExtras)
|
||||
else ()
|
||||
set(PLATFORM_QT_COMPONENTS WebEngine WebEngineWidgets WebKitWidgets)
|
||||
set(PLATFORM_QT_COMPONENTS WebEngine WebEngineWidgets)
|
||||
endif ()
|
||||
|
||||
find_package(
|
||||
Qt5 COMPONENTS
|
||||
Gui Multimedia Network OpenGL Qml Quick Script ScriptTools Svg
|
||||
Gui Multimedia Network OpenGL Qml Quick Script Svg
|
||||
${PLATFORM_QT_COMPONENTS}
|
||||
WebChannel WebSockets
|
||||
)
|
||||
|
@ -241,8 +241,8 @@ include_directories("${PROJECT_SOURCE_DIR}/src")
|
|||
target_link_libraries(
|
||||
${TARGET_NAME}
|
||||
Qt5::Gui Qt5::Network Qt5::Multimedia Qt5::OpenGL
|
||||
Qt5::Qml Qt5::Quick Qt5::Script Qt5::ScriptTools Qt5::Svg
|
||||
Qt5::WebChannel Qt5::WebEngine Qt5::WebEngineWidgets Qt5::WebKitWidgets
|
||||
Qt5::Qml Qt5::Quick Qt5::Script Qt5::Svg
|
||||
Qt5::WebChannel Qt5::WebEngine Qt5::WebEngineWidgets
|
||||
)
|
||||
|
||||
# Issue causes build failure unless we add this directory.
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include <QApplication>
|
||||
#include <QMainWindow>
|
||||
#include <QDockWidget>
|
||||
#include <QWebFrame>
|
||||
#include <QWebView>
|
||||
#include <QWebEngineView>
|
||||
#include <QListWidget>
|
||||
#include <QStyleFactory>
|
||||
|
||||
|
@ -48,7 +47,7 @@ WebWindowClass::WebWindowClass(const QString& title, const QString& url, int wid
|
|||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
dialogWidget->setLayout(layout);
|
||||
|
||||
_webView = new QWebView(dialogWidget);
|
||||
_webView = new QWebEngineView(dialogWidget);
|
||||
|
||||
layout->addWidget(_webView);
|
||||
|
||||
|
@ -69,8 +68,8 @@ WebWindowClass::WebWindowClass(const QString& title, const QString& url, int wid
|
|||
}
|
||||
|
||||
connect(this, &WebWindowClass::destroyed, _windowWidget, &QWidget::deleteLater);
|
||||
connect(_webView->page()->mainFrame(), &QWebFrame::javaScriptWindowObjectCleared,
|
||||
this, &WebWindowClass::addEventBridgeToWindowObject);
|
||||
//connect(_webView->page()->mainFrame(), &QWebFrame::javaScriptWindowObjectCleared,
|
||||
// this, &WebWindowClass::addEventBridgeToWindowObject);
|
||||
}
|
||||
|
||||
WebWindowClass::~WebWindowClass() {
|
||||
|
@ -94,7 +93,7 @@ void WebWindowClass::hasClosed() {
|
|||
}
|
||||
|
||||
void WebWindowClass::addEventBridgeToWindowObject() {
|
||||
_webView->page()->mainFrame()->addToJavaScriptWindowObject("EventBridge", _eventBridge);
|
||||
// _webView->page()->mainFrame()->addToJavaScriptWindowObject("EventBridge", _eventBridge);
|
||||
}
|
||||
|
||||
void WebWindowClass::setVisible(bool visible) {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
#include <QScriptContext>
|
||||
#include <QScriptEngine>
|
||||
#include <QWebView>
|
||||
#include <QWebEngineView>
|
||||
|
||||
class ScriptEventBridge : public QObject {
|
||||
Q_OBJECT
|
||||
|
@ -73,7 +73,7 @@ private slots:
|
|||
|
||||
private:
|
||||
QWidget* _windowWidget;
|
||||
QWebView* _webView;
|
||||
QWebEngineView* _webView;
|
||||
ScriptEventBridge* _eventBridge;
|
||||
};
|
||||
|
||||
|
|
|
@ -17,23 +17,22 @@
|
|||
|
||||
#include "DataWebPage.h"
|
||||
|
||||
DataWebPage::DataWebPage(QObject* parent) :
|
||||
QWebPage(parent)
|
||||
DataWebPage::DataWebPage(QObject* parent) : QWebEnginePage(parent)
|
||||
{
|
||||
// use an OAuthNetworkAccessManager instead of regular QNetworkAccessManager so our requests are authed
|
||||
setNetworkAccessManager(OAuthNetworkAccessManager::getInstance());
|
||||
// setNetworkAccessManager(OAuthNetworkAccessManager::getInstance());
|
||||
|
||||
// give the page an empty stylesheet
|
||||
settings()->setUserStyleSheetUrl(QUrl());
|
||||
// settings()->setUserStyleSheetUrl(QUrl());
|
||||
}
|
||||
|
||||
void DataWebPage::javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID) {
|
||||
qDebug() << "JS console message at line" << lineNumber << "from" << sourceID << "-" << message;
|
||||
}
|
||||
//void DataWebPage::javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID) {
|
||||
// qDebug() << "JS console message at line" << lineNumber << "from" << sourceID << "-" << message;
|
||||
//}
|
||||
|
||||
bool DataWebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, QWebPage::NavigationType type) {
|
||||
bool DataWebPage::acceptNavigationRequest(const QUrl & url, NavigationType type, bool isMainFrame) {
|
||||
// Handle hifi:// links and links to files with particular extensions
|
||||
QString urlString = request.url().toString();
|
||||
QString urlString = url.toString();
|
||||
if (qApp->canAcceptURL(urlString)) {
|
||||
if (qApp->acceptURL(urlString)) {
|
||||
return false; // we handled it, so QWebPage doesn't need to handle it
|
||||
|
@ -41,14 +40,15 @@ bool DataWebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkReques
|
|||
}
|
||||
|
||||
// Make hyperlinks with target="_blank" open in user's Web browser
|
||||
if (type == QWebPage::NavigationTypeLinkClicked && frame == nullptr) {
|
||||
qApp->openUrl(request.url());
|
||||
if (type == NavigationTypeLinkClicked && !isMainFrame) {
|
||||
qApp->openUrl(url);
|
||||
return false; // We handled it.
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
QString DataWebPage::userAgentForUrl(const QUrl& url) const {
|
||||
return HIGH_FIDELITY_USER_AGENT;
|
||||
}
|
||||
//
|
||||
//QString DataWebPage::userAgentForUrl(const QUrl& url) const {
|
||||
// return HIGH_FIDELITY_USER_AGENT;
|
||||
//}
|
||||
|
|
|
@ -12,15 +12,15 @@
|
|||
#ifndef hifi_DataWebPage_h
|
||||
#define hifi_DataWebPage_h
|
||||
|
||||
#include <qwebpage.h>
|
||||
#include <qwebenginepage.h>
|
||||
|
||||
class DataWebPage : public QWebPage {
|
||||
class DataWebPage : public QWebEnginePage {
|
||||
public:
|
||||
DataWebPage(QObject* parent = 0);
|
||||
protected:
|
||||
void javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID) override;
|
||||
bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, QWebPage::NavigationType type) override;
|
||||
virtual QString userAgentForUrl(const QUrl& url) const override;
|
||||
//virtual void javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID) override;
|
||||
virtual bool acceptNavigationRequest(const QUrl & url, NavigationType type, bool isMainFrame) override;
|
||||
//virtual QString userAgentForUrl(const QUrl& url) const override;
|
||||
};
|
||||
|
||||
#endif // hifi_DataWebPage_h
|
||||
|
|
|
@ -155,7 +155,7 @@ void bindActionToQmlAction(QObject* qmlAction, QAction* action) {
|
|||
QObject::connect(qmlAction, SIGNAL(triggered()), action, SLOT(trigger()));
|
||||
}
|
||||
|
||||
class QQuickMenuItem;
|
||||
class QQuickMenuItem1;
|
||||
|
||||
void VrMenu::addAction(QMenu* menu, QAction* action) {
|
||||
Q_ASSERT(!MenuUserData::hasData(action));
|
||||
|
@ -167,10 +167,9 @@ void VrMenu::addAction(QMenu* menu, QAction* action) {
|
|||
}
|
||||
QObject* menuQml = findMenuObject(userData->uuid.toString());
|
||||
Q_ASSERT(menuQml);
|
||||
QQuickMenuItem* returnedValue { nullptr };
|
||||
|
||||
QQuickMenuItem1* returnedValue { nullptr };
|
||||
bool invokeResult = QMetaObject::invokeMethod(menuQml, "addItem", Qt::DirectConnection,
|
||||
Q_RETURN_ARG(QQuickMenuItem*, returnedValue),
|
||||
Q_RETURN_ARG(QQuickMenuItem1*, returnedValue),
|
||||
Q_ARG(QString, action->text()));
|
||||
|
||||
Q_ASSERT(invokeResult);
|
||||
|
@ -206,10 +205,10 @@ void VrMenu::insertAction(QAction* before, QAction* action) {
|
|||
beforeQml = findMenuObject(beforeUserData->uuid.toString());
|
||||
}
|
||||
QObject* menu = beforeQml->parent();
|
||||
QQuickMenuItem* returnedValue { nullptr };
|
||||
QQuickMenuItem1* returnedValue { nullptr };
|
||||
// FIXME this needs to find the index of the beforeQml item and call insertItem(int, object)
|
||||
bool invokeResult = QMetaObject::invokeMethod(menu, "addItem", Qt::DirectConnection,
|
||||
Q_RETURN_ARG(QQuickMenuItem*, returnedValue),
|
||||
Q_RETURN_ARG(QQuickMenuItem1*, returnedValue),
|
||||
Q_ARG(QString, action->text()));
|
||||
Q_ASSERT(invokeResult);
|
||||
QObject* result = reinterpret_cast<QObject*>(returnedValue); // returnedValue.value<QObject*>();
|
||||
|
|
Loading…
Reference in a new issue