From 99156abc6e0779ed3de437c0005b6de8293c7a15 Mon Sep 17 00:00:00 2001 From: LePresidente Date: Wed, 4 Jan 2017 14:22:18 +0200 Subject: First attempt to update to QT5.7 --- src/CMakeLists.txt | 8 ++++---- src/browserdialog.cpp | 32 ++++++++++++++++---------------- src/browserdialog.h | 2 +- src/browserview.cpp | 35 ++++++++++++++++++----------------- src/browserview.h | 8 ++++---- src/modinfodialog.cpp | 3 ++- src/modinfodialog.ui | 6 +++--- 7 files changed, 48 insertions(+), 46 deletions(-) (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 500dc56b..0d330d72 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -233,10 +233,10 @@ SET(CMAKE_INCLUDE_CURRENT_DIR ON) SET(CMAKE_AUTOMOC ON) SET(CMAKE_AUTOUIC ON) FIND_PACKAGE(Qt5Widgets REQUIRED) -FIND_PACKAGE(Qt5Declarative REQUIRED) +FIND_PACKAGE(Qt5QuickWidgets REQUIRED) FIND_PACKAGE(Qt5Network REQUIRED) FIND_PACKAGE(Qt5WinExtras REQUIRED) -FIND_PACKAGE(Qt5WebKitWidgets REQUIRED) +FIND_PACKAGE(Qt5WebEngineWidgets REQUIRED) FIND_PACKAGE(Qt5LinguistTools) QT5_WRAP_UI(organizer_UIHDRS ${organizer_UIS}) QT5_ADD_RESOURCES(organizer_RCCPPS ${organizer_QRCS}) @@ -299,7 +299,7 @@ ENDIF() ADD_EXECUTABLE(ModOrganizer WIN32 ${organizer_HDRS} ${organizer_SRCS} ${organizer_UIHDRS} ${organizer_RCS} ${organizer_RCCPPS} ${organizer_translations_qm}) TARGET_LINK_LIBRARIES(ModOrganizer - Qt5::Widgets Qt5::WinExtras Qt5::WebKitWidgets + Qt5::Widgets Qt5::WinExtras Qt5::WebEngineWidgets ${Boost_LIBRARIES} zlibstatic uibase esptk bsatk githubpp @@ -313,7 +313,7 @@ SET_TARGET_PROPERTIES(ModOrganizer PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/LARGEADDRESSAWARE ${OPTIMIZE_LINK_FLAGS}") -QT5_USE_MODULES(ModOrganizer Widgets Declarative Network WebKitWidgets) +QT5_USE_MODULES(ModOrganizer Widgets Script Qml QuickWidgets Network WebEngineWidgets) ############### diff --git a/src/browserdialog.cpp b/src/browserdialog.cpp index e5f0f21d..c2c65acc 100644 --- a/src/browserdialog.cpp +++ b/src/browserdialog.cpp @@ -28,13 +28,13 @@ along with Mod Organizer. If not, see . #include #include "settings.h" +#include #include #include #include #include -#include +#include #include -#include #include #include @@ -77,8 +77,8 @@ void BrowserDialog::closeEvent(QCloseEvent *event) void BrowserDialog::initTab(BrowserView *newView) { - newView->page()->setNetworkAccessManager(m_AccessManager); - newView->page()->setForwardUnsupportedContent(true); + //newView->page()->setNetworkAccessManager(m_AccessManager); + //newView->page()->setForwardUnsupportedContent(true); connect(newView, SIGNAL(loadProgress(int)), this, SLOT(progress(int))); connect(newView, SIGNAL(titleChanged(QString)), this, SLOT(titleChanged(QString))); @@ -86,14 +86,14 @@ void BrowserDialog::initTab(BrowserView *newView) connect(newView, SIGNAL(startFind()), this, SLOT(startSearch())); connect(newView, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl))); connect(newView, SIGNAL(openUrlInNewTab(QUrl)), this, SLOT(openInNewTab(QUrl))); - connect(newView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest))); - connect(newView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*))); + connect(newView, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(downloadRequested(QNetworkRequest))); + connect(newView, SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedContent(QNetworkReply*))); ui->backBtn->setEnabled(false); ui->fwdBtn->setEnabled(false); m_Tabs->addTab(newView, tr("new")); - newView->settings()->setAttribute(QWebSettings::PluginsEnabled, true); - newView->settings()->setAttribute(QWebSettings::AutoLoadImages, true); + newView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true); + newView->settings()->setAttribute(QWebEngineSettings::AutoLoadImages, true); } @@ -133,10 +133,10 @@ void BrowserDialog::openUrl(const QUrl &url) void BrowserDialog::maximizeWidth() { - int viewportWidth = getCurrentView()->page()->viewportSize().width(); + int viewportWidth = getCurrentView()->page()->contentsSize ().width(); int frameWidth = width() - viewportWidth; - int contentWidth = getCurrentView()->page()->mainFrame()->contentsSize().width(); + int contentWidth = getCurrentView()->page()->contentsSize().width(); QDesktopWidget screen; int currentScreen = screen.screenNumber(this); @@ -190,7 +190,7 @@ QString BrowserDialog::guessFileName(const QString &url) void BrowserDialog::unsupportedContent(QNetworkReply *reply) { try { - QWebPage *page = qobject_cast(sender()); + QWebEnginePage *page = qobject_cast(sender()); if (page == nullptr) { qCritical("sender not a page"); return; @@ -252,10 +252,10 @@ void BrowserDialog::startSearch() void BrowserDialog::on_searchEdit_returnPressed() { - BrowserView *currentView = getCurrentView(); - if (currentView != nullptr) { - currentView->findText(ui->searchEdit->text(), QWebPage::FindWrapsAroundDocument); - } +// BrowserView *currentView = getCurrentView(); +// if (currentView != nullptr) { +// currentView->findText(ui->searchEdit->text(), QWebEnginePage::FindWrapsAroundDocument); +// } } void BrowserDialog::on_refreshBtn_clicked() @@ -274,7 +274,7 @@ void BrowserDialog::on_browserTabWidget_currentChanged(int index) void BrowserDialog::on_urlEdit_returnPressed() { - QWebView *currentView = getCurrentView(); + QWebEngineView *currentView = getCurrentView(); if (currentView != nullptr) { currentView->setUrl(QUrl(ui->urlEdit->text())); } diff --git a/src/browserdialog.h b/src/browserdialog.h index 04567f5f..354a377b 100644 --- a/src/browserdialog.h +++ b/src/browserdialog.h @@ -24,7 +24,7 @@ along with Mod Organizer. If not, see . #include #include #include -#include +#include #include #include #include diff --git a/src/browserview.cpp b/src/browserview.cpp index aeb16520..0b871e23 100644 --- a/src/browserview.cpp +++ b/src/browserview.cpp @@ -21,23 +21,23 @@ along with Mod Organizer. If not, see . #include #include -#include -#include #include +#include +#include #include #include #include "utility.h" BrowserView::BrowserView(QWidget *parent) - : QWebView(parent) + : QWebEngineView(parent) { installEventFilter(this); - page()->settings()->setMaximumPagesInCache(10); + //page()->settings()->setMaximumPagesInCache(10); } -QWebView *BrowserView::createWindow(QWebPage::WebWindowType) +QWebEngineView *BrowserView::createWindow(QWebEnginePage::WebWindowType) { BrowserView *newView = new BrowserView(parentWidget()); emit initTab(newView); @@ -59,17 +59,18 @@ bool BrowserView::eventFilter(QObject *obj, QEvent *event) mouseEvent->ignore(); return true; } - } else if (event->type() == QEvent::MouseButtonRelease) { - QMouseEvent *mouseEvent = static_cast(event); - if (mouseEvent->button() == Qt::MidButton) { - QWebHitTestResult hitTest = page()->frameAt(mouseEvent->pos())->hitTestContent(mouseEvent->pos()); - if (hitTest.linkUrl().isValid()) { - emit openUrlInNewTab(hitTest.linkUrl()); - } - mouseEvent->ignore(); - - return true; - } +// TODO This is due to that QTWebEnginePage doesn't support QWebFrame anymore +// } else if (event->type() == QEvent::MouseButtonRelease) { +// QMouseEvent *mouseEvent = static_cast(event); +// if (mouseEvent->button() == Qt::MidButton) { +// QWebEngineContextMenuData hitTest = page()->hitTestContent(mouseEvent->pos()); +// if (hitTest.linkUrl().isValid()) { +// emit openUrlInNewTab(hitTest.linkUrl()); +// } +// mouseEvent->ignore(); +// +// return true; +// } } - return QWebView::eventFilter(obj, event); + return QWebEngineView::eventFilter(obj, event); } diff --git a/src/browserview.h b/src/browserview.h index 6a89752a..24be21c1 100644 --- a/src/browserview.h +++ b/src/browserview.h @@ -24,13 +24,13 @@ along with Mod Organizer. If not, see . class QEvent; class QUrl; class QWidget; -#include -#include +#include +#include /** * @brief web view used to display a nexus page **/ -class BrowserView : public QWebView +class BrowserView : public QWebEngineView { Q_OBJECT @@ -66,7 +66,7 @@ signals: protected: - virtual QWebView *createWindow(QWebPage::WebWindowType type); + virtual QWebEngineView *createWindow(QWebEnginePage::WebWindowType type); virtual bool eventFilter(QObject *obj, QEvent *event); diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp index e1a2183c..0e77859a 100644 --- a/src/modinfodialog.cpp +++ b/src/modinfodialog.cpp @@ -89,7 +89,8 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo connect(this, SIGNAL(thumbnailClickedSignal(const QString&)), this, SLOT(thumbnailClicked(const QString&))); connect(m_ModInfo.data(), SIGNAL(modDetailsUpdated(bool)), this, SLOT(modDetailsUpdated(bool))); connect(ui->descriptionView, SIGNAL(linkClicked(QUrl)), this, SLOT(linkClicked(QUrl))); - ui->descriptionView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); + //TODO: No easy way to delegate links + //ui->descriptionView->page()->acceptNavigationRequest(QWebEnginePage::DelegateAllLinks); if (directory->originExists(ToWString(modInfo->name()))) { m_Origin = &directory->getOriginByName(ToWString(modInfo->name())); diff --git a/src/modinfodialog.ui b/src/modinfodialog.ui index a03edef7..a452bc59 100644 --- a/src/modinfodialog.ui +++ b/src/modinfodialog.ui @@ -678,7 +678,7 @@ p, li { white-space: pre-wrap; } - + about:blank @@ -807,9 +807,9 @@ p, li { white-space: pre-wrap; } - QWebView + QQuickWidget QWidget -
QtWebKitWidgets/QWebView
+
QtQuickWidgets/QQuickWidget
-- cgit v1.3.1