summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLePresidente <brian.alexander.munro@gmail.com>2017-01-04 14:22:18 +0200
committerBrian Munro <brian.alexander.munro@gmail.com>2017-01-04 14:23:53 +0200
commit99156abc6e0779ed3de437c0005b6de8293c7a15 (patch)
tree15cc0cce34a5e5302a0279fe1f7807bd8dffe234 /src
parent7432f7870b2021fe88a6f99aa0d192249fd35ea1 (diff)
First attempt to update to QT5.7
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/browserdialog.cpp32
-rw-r--r--src/browserdialog.h2
-rw-r--r--src/browserview.cpp35
-rw-r--r--src/browserview.h8
-rw-r--r--src/modinfodialog.cpp3
-rw-r--r--src/modinfodialog.ui6
7 files changed, 48 insertions, 46 deletions
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 <http://www.gnu.org/licenses/>.
#include <utility.h>
#include "settings.h"
+#include <QWebEngineSettings>
#include <QNetworkCookieJar>
#include <QNetworkCookie>
#include <QMenu>
#include <QInputDialog>
-#include <QWebHistory>
+#include <QWebEngineHistory>
#include <QDir>
-#include <QWebFrame>
#include <QDesktopWidget>
#include <QKeyEvent>
@@ -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<QWebPage*>(sender());
+ QWebEnginePage *page = qobject_cast<QWebEnginePage*>(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 <http://www.gnu.org/licenses/>.
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QTimer>
-#include <QWebView>
+#include <QWebEngineView>
#include <QQueue>
#include <QTabWidget>
#include <QAtomicInt>
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 <http://www.gnu.org/licenses/>.
#include <QEvent>
#include <QKeyEvent>
-#include <QWebFrame>
-#include <QWebElement>
#include <QNetworkDiskCache>
+#include <QWebEngineContextMenuData>
+#include <QWebEngineSettings>
#include <QMenu>
#include <Shlwapi.h>
#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<QMouseEvent*>(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<QMouseEvent*>(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 <http://www.gnu.org/licenses/>.
class QEvent;
class QUrl;
class QWidget;
-#include <QWebView>
-#include <QWebPage>
+#include <QWebEngineView>
+#include <QWebEnginePage>
/**
* @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; }
</layout>
</item>
<item>
- <widget class="QWebView" name="descriptionView">
+ <widget class="QWebEngineView" name="descriptionView">
<property name="url">
<url>
<string>about:blank</string>
@@ -807,9 +807,9 @@ p, li { white-space: pre-wrap; }
</widget>
<customwidgets>
<customwidget>
- <class>QWebView</class>
+ <class>QQuickWidget</class>
<extends>QWidget</extends>
- <header>QtWebKitWidgets/QWebView</header>
+ <header>QtQuickWidgets/QQuickWidget</header>
</customwidget>
</customwidgets>
<resources>