From 60b2386a6e8420d831fad5ec18e263cb14488f5c Mon Sep 17 00:00:00 2001 From: David Rosca Date: Tue, 27 Jan 2015 11:01:52 +0100 Subject: [PATCH] Initial port to QtWebEngine This is first quick port to QtWebEngine, most of advanced features are not working yet. Please read README. For now, it will use separate profile directory as well as browser session, that means you can use both QtWebEngine and QtWebKit versions at the same time. --- .gitignore | 1 - QupZilla.pro | 2 +- README.md | 96 +------ src/lib/adblock/adblockrule.cpp | 11 +- src/lib/app/browserwindow.cpp | 43 ++- src/lib/app/browserwindow.h | 6 +- src/lib/app/mainapplication.cpp | 26 +- src/lib/app/mainapplication.h | 6 +- src/lib/app/mainmenu.cpp | 20 +- src/lib/app/profilemanager.cpp | 6 + src/lib/app/qzcommon.h | 11 + src/lib/autofill/autofill.cpp | 7 +- src/lib/autofill/autofill.h | 4 +- src/lib/autofill/pageformcompleter.cpp | 21 +- src/lib/autofill/pageformcompleter.h | 18 +- src/lib/bookmarks/bookmarksicon.cpp | 6 +- src/lib/bookmarks/bookmarkswidget.cpp | 4 + src/lib/cookies/cookiejar.cpp | 4 +- src/lib/downloads/downloadfilehelper.cpp | 2 +- src/lib/downloads/downloaditem.cpp | 20 +- src/lib/downloads/downloadmanager.cpp | 5 + src/lib/downloads/downloadmanager.h | 7 +- src/lib/history/historymenu.cpp | 2 +- src/lib/history/webhistoryinterface.cpp | 6 +- src/lib/history/webhistoryinterface.h | 7 +- src/lib/lib.pro | 6 +- src/lib/navigation/locationbar.cpp | 12 +- src/lib/navigation/navigationbar.cpp | 32 +-- src/lib/navigation/navigationbar.h | 6 +- src/lib/navigation/websearchbar.cpp | 9 +- src/lib/network/cabundleupdater.cpp | 4 + src/lib/network/cabundleupdater.h | 4 + src/lib/network/networkmanager.cpp | 65 +---- src/lib/network/networkmanager.h | 6 +- src/lib/network/networkmanagerproxy.cpp | 4 + src/lib/network/networkmanagerproxy.h | 4 + .../schemehandlers/ftpschemehandler.cpp | 3 + .../network/schemehandlers/ftpschemehandler.h | 4 + .../schemehandlers/qupzillaschemehandler.cpp | 6 +- .../schemehandlers/qupzillaschemehandler.h | 4 + src/lib/opensearch/searchenginesmanager.cpp | 3 +- src/lib/other/aboutdialog.cpp | 6 +- src/lib/other/browsinglibrary.cpp | 9 +- src/lib/other/clearprivatedata.cpp | 14 +- src/lib/other/macmenureceiver.cpp | 8 +- src/lib/other/macmenureceiver.h | 6 +- src/lib/other/pagescreen.cpp | 8 +- src/lib/other/pagescreen.h | 4 + src/lib/other/siteinfo.cpp | 10 +- src/lib/other/siteinfo.h | 4 + src/lib/other/sourceviewer.cpp | 7 +- src/lib/other/sourceviewer.h | 10 +- src/lib/other/sourceviewersearch.cpp | 4 + src/lib/other/sourceviewersearch.h | 4 + src/lib/other/statusbarmessage.cpp | 7 +- src/lib/other/useragentmanager.cpp | 2 +- src/lib/plugins/clicktoflash.cpp | 16 +- src/lib/plugins/clicktoflash.h | 4 + src/lib/plugins/plugininterface.h | 4 + src/lib/plugins/plugins.cpp | 2 +- src/lib/plugins/speeddial.cpp | 20 +- src/lib/plugins/speeddial.h | 10 +- src/lib/popupwindow/popuplocationbar.cpp | 6 - src/lib/popupwindow/popupstatusbarmessage.cpp | 7 +- src/lib/popupwindow/popupwebpage.cpp | 4 +- src/lib/popupwindow/popupwebpage.h | 2 +- src/lib/popupwindow/popupwebview.cpp | 7 +- src/lib/popupwindow/popupwindow.cpp | 17 +- src/lib/preferences/jsoptions.cpp | 2 +- src/lib/preferences/preferences.cpp | 29 +- src/lib/preferences/sslmanager.cpp | 16 ++ src/lib/rss/rssicon.cpp | 4 + src/lib/rss/rssicon.h | 4 + src/lib/rss/rssmanager.cpp | 6 +- src/lib/rss/rssmanager.h | 4 + src/lib/rss/rssnotification.cpp | 4 + src/lib/rss/rssnotification.h | 4 + src/lib/rss/rsswidget.cpp | 8 +- src/lib/rss/rsswidget.h | 4 + src/lib/tabwidget/tabicon.cpp | 2 + src/lib/tabwidget/tabwidget.cpp | 7 +- src/lib/tools/closedtabsmanager.cpp | 4 +- .../html5permissionsmanager.cpp | 30 +- .../html5permissionsmanager.h | 8 +- .../html5permissionsnotification.cpp | 23 +- .../html5permissionsnotification.h | 6 +- src/lib/tools/pagethumbnailer.cpp | 12 +- src/lib/tools/pagethumbnailer.h | 8 +- src/lib/tools/qztools.cpp | 7 +- src/lib/tools/qztools.h | 4 +- .../webkit/javascript/externaljsobject.cpp | 4 + src/lib/webkit/loadrequest.cpp | 2 +- src/lib/webkit/webinspector.cpp | 4 + src/lib/webkit/webinspector.h | 2 + src/lib/webkit/webpage.cpp | 265 ++++++++++++++---- src/lib/webkit/webpage.h | 27 +- src/lib/webkit/webpluginfactory.cpp | 3 + src/lib/webkit/webpluginfactory.h | 2 + src/lib/webkit/webview.cpp | 221 +++++++++------ src/lib/webkit/webview.h | 29 +- src/lib/webtab/searchtoolbar.cpp | 63 ++--- src/lib/webtab/searchtoolbar.h | 8 +- src/lib/webtab/tabbedwebview.cpp | 13 +- src/lib/webtab/webtab.cpp | 15 +- src/lib/webtab/webtab.h | 4 +- src/main/main.cpp | 8 +- src/main/main.pro | 2 +- 107 files changed, 1013 insertions(+), 570 deletions(-) diff --git a/.gitignore b/.gitignore index ec4c2e1cc..68c3042d2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ DEBIAN *.autosave *~ *.a -*.orig *.qm *.o !qt_*.qm diff --git a/QupZilla.pro b/QupZilla.pro index e1e2969ca..8c3cebe74 100644 --- a/QupZilla.pro +++ b/QupZilla.pro @@ -24,4 +24,4 @@ src_main.depends = sub-src-lib src_plugins.subdir = src/plugins src_plugins.depends = sub-src-lib -SUBDIRS += src_lib src_main src_plugins +SUBDIRS += src_lib src_main diff --git a/README.md b/README.md index 458a5553c..3f6f0ef71 100644 --- a/README.md +++ b/README.md @@ -1,99 +1,15 @@ -QupZilla Web Browser +QupZilla Web Browser - QtWebEngine ---------------------------------------------------------------------------------------- -[![Build Status](https://travis-ci.org/QupZilla/qupzilla.svg?branch=master)](https://travis-ci.org/QupZilla/qupzilla) Homepage: [http://www.qupzilla.com](http://www.qupzilla.com) Blog: [http://blog.qupzilla.com](http://blog.qupzilla.com) IRC: `#qupzilla` at `irc.freenode.net` Translations: [https://www.transifex.com](https://www.transifex.com/projects/p/qupzilla) -About QupZilla +THIS IS QTWEBENGINE BRANCH ---------------------------------------------------------------------------------------- -QupZilla is a new and very fast QtWebKit browser. It aims to be a lightweight web browser -available through all major platforms. This project has been originally started only -for educational purposes. But from its start, QupZilla has grown into a feature-rich browser. - -QupZilla has all standard functions you expect from a web browser. It includes bookmarks, -history (both also in sidebar) and tabs. Above that, you can manage RSS feeds with an included -RSS reader, block ads with a built-in AdBlock plugin, block Flash content with Click2Flash -and edit the local CA Certificates database with an SSL Manager. - -QupZilla's main aim is to be a very fast and very stable QtWebKit browser available to everyone. -There are already a lot of QtWebKit browsers available, but they are either bound to the KDE -environment (rekonq), are not actively developed or very unstable and miss important -features. But there is missing a multi-platform, modern and actively developed browser. QupZilla -is trying to fill this gap by providing a very stable browsing experience. - -History ----------------------------------------------------------------------------------------- - -The very first version of QupZilla has been released in December 2010 and it was written -in Python with PyQt4 bindings. After a few versions, QupZilla has been completely rewritten -in C++ with the Qt Framework. The Windows version of QupZilla was compiled using MingW, but due to -a huge problem with Flash, it is now compiled with Microsoft Visual C++ Compiler 2008. -First public release was 1.0.0-b4. - -Compiling ----------------------------------------------------------------------------------------- - -Before you start compiling, make sure that you have installed the Qt (>=4.7) development libraries -and you have read the [BUILDING](https://github.com/QupZilla/qupzilla/blob/master/BUILDING) information. - -**Linux** - - * OpenSSL (libcrypto) is required - * pkg-config is recommended (to correctly detect versions of QtWebKit) - * pkg-config is required for Hunspell spellcheck - * Hunspell development package for spellcheck - * QtWebKit 2.3 is needed to have support for spellcheck - -**Windows** - * OpenSSL (libeay32) is required - * QtWebKit 2.3 is required - * Hunspell library is required for spellcheck - -Then you can start compiling by running this commands: - - $ qmake - $ make - -After a successful compilation the executable binary can be found in the bin/ directory. -On Fedora and possibly other Linux distributions you need to replace `qmake` with `qmake-qt4` or `qmake-qt5` since `qmake` is for Qt3. - -On Linux/Unix: To install QupZilla, run this command: (it may be necessary to run it as root) - - $ make install - -On Mac OS X: To deploy QupZilla in dmg image, run this command: - - $ ./mac/macdeploy.sh full-path-to-macdeployqt - -You need to specify path to `macdeployqt` only if it is not in PATH. - -Current version ----------------------------------------------------------------------------------------- - -The current stable version of QupZilla is 1.8.6. You can download precompiled packages -and the sources from the download section at [homepage](http://www.qupzilla.com/download). -However, if you want the latest revision, just take the latest code snapshot either by -downloading a tarball or running: - - $ git clone git://github.com/QupZilla/qupzilla.git - -If you are using Ubuntu, you can download QupZilla from PPA: - - $ sudo add-apt-repository ppa:nowrep/qupzilla - $ sudo apt-get update - $ sudo apt-get install qupzilla - - for development version: - - $ sudo apt-get install qupzilla-next - -FAQ and Changelog ----------------------------------------------------------------------------------------- - -If you are experiencing some sort of problem, please read the FAQ before you open an issue. - -[FAQ](https://github.com/QupZilla/qupzilla/wiki/FAQ) | [Changelog](https://github.com/QupZilla/qupzilla/blob/master/CHANGELOG) | [Bug Reports](https://github.com/QupZilla/qupzilla/wiki/Bug-Reports) +Master branch is now for QtWebEngine. It is still in very early development state, so except +a lot of features found in QtWebKit branch not working here. Thanks for understanding! + +For QtWebKit, please use [v1.8](https://github.com/QupZilla/qupzilla/tree/v1.8) \ No newline at end of file diff --git a/src/lib/adblock/adblockrule.cpp b/src/lib/adblock/adblockrule.cpp index d1c88f688..24a224f63 100644 --- a/src/lib/adblock/adblockrule.cpp +++ b/src/lib/adblock/adblockrule.cpp @@ -53,8 +53,7 @@ #include #include #include -#include -#include +#include // Version for Qt < 4.8 has one issue, it will wrongly // count .co.uk (and others) as second-level domain @@ -352,12 +351,13 @@ bool AdBlockRule::matchObject(const QNetworkRequest &request) const bool AdBlockRule::matchSubdocument(const QNetworkRequest &request) const { - QWebFrame* originatingFrame = static_cast(request.originatingObject()); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* originatingFrame = static_cast(request.originatingObject()); if (!originatingFrame) { return false; } - QWebPage* page = originatingFrame->page(); + QWebEnginePage* page = originatingFrame->page(); if (!page) { return false; } @@ -365,6 +365,9 @@ bool AdBlockRule::matchSubdocument(const QNetworkRequest &request) const bool match = !(originatingFrame == page->mainFrame()); return hasException(SubdocumentOption) ? !match : match; +#else + return false; +#endif } bool AdBlockRule::matchXmlHttpRequest(const QNetworkRequest &request) const diff --git a/src/lib/app/browserwindow.cpp b/src/lib/app/browserwindow.cpp index 2b3106ea9..5ec50d63d 100644 --- a/src/lib/app/browserwindow.cpp +++ b/src/lib/app/browserwindow.cpp @@ -82,8 +82,7 @@ #include #include #include -#include -#include +#include #include #include #include @@ -105,7 +104,11 @@ #endif #endif /* Q_OS_WIN */ +#if QTWEBENGINE_DISABLED const QString BrowserWindow::WEBKITVERSION = qWebKitVersion(); +#else +const QString BrowserWindow::WEBKITVERSION = QSL("QtWebEngine"); +#endif static QKeySequence actionShortcut(QKeySequence shortcut, QKeySequence fallBack, QKeySequence shortcutRTL = QKeySequence(), QKeySequence fallbackRTL = QKeySequence()) { @@ -197,6 +200,7 @@ void BrowserWindow::postLaunch() switch (m_windowType) { case Qz::BW_FirstAppWindow: +#if QTWEBENGINE_DISABLED if (mApp->isStartingAfterCrash()) { addTab = true; startUrl = QUrl("qupzilla:restore"); @@ -204,6 +208,11 @@ void BrowserWindow::postLaunch() else if (afterLaunch == 3 && mApp->restoreManager()) { addTab = !mApp->restoreSession(this, mApp->restoreManager()->restoreData()); } +#else + if (afterLaunch == 3 && mApp->restoreManager()) { + addTab = !mApp->restoreSession(this, mApp->restoreManager()->restoreData()); + } +#endif else { // Pinned tabs are restored in MainApplication::restoreStateSlot // Make sure they will be restored also when not restoring session @@ -427,7 +436,11 @@ void BrowserWindow::createEncodingSubMenu(const QString &name, QStringList &code std::sort(codecNames.begin(), codecNames.end()); QMenu* subMenu = new QMenu(name, menu); +#if QTWEBENGINE_DISABLED const QString activeCodecName = QWebSettings::globalSettings()->defaultTextEncoding(); +#else + const QString activeCodecName = QL1S("UTF-8"); +#endif foreach (const QString &codecName, codecNames) { subMenu->addAction(createEncodingAction(codecName, activeCodecName, subMenu)); @@ -668,7 +681,9 @@ void BrowserWindow::changeEncoding() { if (QAction* action = qobject_cast(sender())) { const QString encoding = action->data().toString(); - QWebSettings::globalSettings()->setDefaultTextEncoding(encoding); +#if QTWEBENGINE_DISABLED + QWebEngineSettings::globalSettings()->setDefaultTextEncoding(encoding); +#endif Settings settings; settings.setValue("Web-Browser-Settings/DefaultEncoding", encoding); @@ -742,8 +757,9 @@ void BrowserWindow::showHistoryManager() mApp->browsingLibrary()->showHistory(this); } -void BrowserWindow::showSource(QWebFrame* frame, const QString &selectedHtml) +void BrowserWindow::showSource(QWebEngineFrame* frame, const QString &selectedHtml) { +#if QTWEBENGINE_DISABLED if (!frame) { frame = weView()->page()->mainFrame(); } @@ -751,6 +767,7 @@ void BrowserWindow::showSource(QWebFrame* frame, const QString &selectedHtml) SourceViewer* source = new SourceViewer(frame, selectedHtml); QzTools::centerWidgetToParent(source, this); source->show(); +#endif } SideBar* BrowserWindow::addSideBar() @@ -863,12 +880,14 @@ void BrowserWindow::toggleTabsOnTop(bool enable) void BrowserWindow::toggleCaretBrowsing() { +#if QTWEBENGINE_DISABLED #if QTWEBKIT_FROM_2_3 - bool enable = !QWebSettings::globalSettings()->testAttribute(QWebSettings::CaretBrowsingEnabled); + bool enable = !QWebEngineSettings::globalSettings()->testAttribute(QWebEngineSettings::CaretBrowsingEnabled); Settings().setValue("Web-Browser-Settings/CaretBrowsing", enable); - QWebSettings::globalSettings()->setAttribute(QWebSettings::CaretBrowsingEnabled, enable); + QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::CaretBrowsingEnabled, enable); +#endif #endif } @@ -1000,7 +1019,11 @@ void BrowserWindow::createSidebarsMenu(QMenu* menu) void BrowserWindow::createEncodingMenu(QMenu* menu) { +#if QTWEBENGINE_DISABLED const QString activeCodecName = QWebSettings::globalSettings()->defaultTextEncoding(); +#else + const QString activeCodecName = QL1S("UTF-8"); +#endif QStringList isoCodecs, utfCodecs, windowsCodecs, isciiCodecs, otherCodecs; @@ -1193,7 +1216,7 @@ bool BrowserWindow::event(QEvent* event) return QMainWindow::event(event); } -void BrowserWindow::printPage(QWebFrame* frame) +void BrowserWindow::printPage(QWebEngineFrame* frame) { QPrintPreviewDialog* dialog = new QPrintPreviewDialog(this); dialog->setAttribute(Qt::WA_DeleteOnClose); @@ -1206,9 +1229,11 @@ void BrowserWindow::printPage(QWebFrame* frame) connect(dialog, SIGNAL(paintRequested(QPrinter*)), weView(), SLOT(print(QPrinter*))); } else { +#if QTWEBENGINE_DISABLED dialog->printer()->setDocName(QzTools::getFileNameFromUrl(QzTools::frameUrl(frame))); connect(dialog, SIGNAL(paintRequested(QPrinter*)), frame, SLOT(print(QPrinter*))); +#endif } dialog->open(); @@ -1216,8 +1241,10 @@ void BrowserWindow::printPage(QWebFrame* frame) void BrowserWindow::savePageScreen() { +#if QTWEBENGINE_DISABLED PageScreen* dialog = new PageScreen(weView(), this); dialog->show(); +#endif } void BrowserWindow::resizeEvent(QResizeEvent* event) @@ -1409,6 +1436,7 @@ void BrowserWindow::keyPressEvent(QKeyEvent* event) m_tabWidget->setCurrentIndex(number - 1); return; } +#if QTWEBENGINE_DISABLED if (event->modifiers() & Qt::ControlModifier && m_useSpeedDialNumberShortcuts) { const QUrl url = mApp->plugins()->speedDial()->urlForShortcut(number - 1); if (url.isValid()) { @@ -1422,6 +1450,7 @@ void BrowserWindow::keyPressEvent(QKeyEvent* event) if (number == 2) m_tabWidget->nextTab(); } +#endif } QMainWindow::keyPressEvent(event); diff --git a/src/lib/app/browserwindow.h b/src/lib/app/browserwindow.h index abccdfe2b..8301d2caa 100644 --- a/src/lib/app/browserwindow.h +++ b/src/lib/app/browserwindow.h @@ -28,7 +28,7 @@ class QLabel; class QVBoxLayout; class QSplitter; -class QWebFrame; +class QWebEngineFrame; class QTimer; class Menu; @@ -142,8 +142,8 @@ public slots: void bookmarkPage(); void bookmarkAllTabs(); void loadAddress(const QUrl &url); - void showSource(QWebFrame* frame = 0, const QString &selectedHtml = QString()); - void printPage(QWebFrame* frame = 0); + void showSource(QWebEngineFrame* frame = 0, const QString &selectedHtml = QString()); + void printPage(QWebEngineFrame* frame = 0); private slots: void addTab(); diff --git a/src/lib/app/mainapplication.cpp b/src/lib/app/mainapplication.cpp index f3e67d73d..0d1ebac7b 100644 --- a/src/lib/app/mainapplication.cpp +++ b/src/lib/app/mainapplication.cpp @@ -209,6 +209,9 @@ MainApplication::MainApplication(int &argc, char** argv) appId.append(QLatin1String("Portable")); } + // QtWebEngine + appId.append(QL1S("-QtWebEngine")); + // TODO: This should generate some random string for appId if (newInstance) { if (startProfile.isEmpty() || startProfile == QLatin1String("default")) { @@ -516,7 +519,11 @@ QNetworkDiskCache* MainApplication::networkCache() Settings settings; const QString defaultBasePath = QString("%1/networkcache/").arg(DataPaths::currentProfilePath()); const QString basePath = settings.value("Web-Browser-Settings/CachePath", defaultBasePath).toString(); +#if QTWEBENGINE_DISABLED const QString cachePath = QString("%1/%2-Qt%3/").arg(basePath, qWebKitVersion(), qVersion()); +#else + const QString cachePath = QString("%1/QtWebEngine/").arg(basePath); +#endif m_networkCache = new QNetworkDiskCache(this); m_networkCache->setCacheDirectory(cachePath); @@ -533,6 +540,7 @@ BrowsingLibrary* MainApplication::browsingLibrary() return m_browsingLibrary; } +#if QTWEBENGINE_DISABLED RSSManager* MainApplication::rssManager() { if (!m_rssManager) { @@ -540,11 +548,12 @@ RSSManager* MainApplication::rssManager() } return m_rssManager; } +#endif -NetworkManager* MainApplication::networkManager() +QNetworkAccessManager* MainApplication::networkManager() { if (!m_networkManager) { - m_networkManager = new NetworkManager(this); + m_networkManager = new QNetworkAccessManager(this); } return m_networkManager; } @@ -636,8 +645,10 @@ void MainApplication::startPrivateBrowsing(const QUrl &startUrl) void MainApplication::reloadUserStyleSheet() { +#if QTWEBENGINE_DISABLED const QUrl userCss = userStyleSheet(Settings().value("Web-Browser-Settings/userStyleSheet", QString()).toString()); - QWebSettings::globalSettings()->setUserStyleSheetUrl(userCss); + QWebEngineSettings::globalSettings()->setUserStyleSheetUrl(userCss); +#endif } void MainApplication::restoreOverrideCursor() @@ -690,7 +701,9 @@ void MainApplication::postLaunch() } QSettings::setPath(QSettings::IniFormat, QSettings::UserScope, DataPaths::currentProfilePath()); - QWebHistoryInterface::setDefaultInterface(new WebHistoryInterface(this)); +#if QTWEBENGINE_DISABLED + QWebEngineHistoryInterface::setDefaultInterface(new WebHistoryInterface(this)); +#endif connect(this, SIGNAL(messageReceived(QString)), this, SLOT(messageReceived(QString))); connect(this, SIGNAL(aboutToQuit()), this, SLOT(saveSettings())); @@ -758,7 +771,6 @@ void MainApplication::saveSettings() } m_searchEnginesManager->saveSettings(); - m_networkManager->saveSettings(); m_plugins->shutdown(); DataPaths::clearTempData(); @@ -854,6 +866,7 @@ void MainApplication::loadSettings() loadTheme(activeTheme); +#if QTWEBENGINE_DISABLED QWebSettings* webSettings = QWebSettings::globalSettings(); // Web browsing settings @@ -915,9 +928,12 @@ void MainApplication::loadSettings() webSettings->setWebGraphic(QWebSettings::DefaultFrameIconGraphic, IconProvider::emptyWebIcon().pixmap(16, 16)); webSettings->setWebGraphic(QWebSettings::MissingImageGraphic, QPixmap()); +#endif if (isPrivate()) { +#if QTWEBENGINE_DISABLED webSettings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); +#endif history()->setSaving(false); } diff --git a/src/lib/app/mainapplication.h b/src/lib/app/mainapplication.h index 23a76dca8..9ace42b86 100644 --- a/src/lib/app/mainapplication.h +++ b/src/lib/app/mainapplication.h @@ -28,6 +28,7 @@ class QMenu; class QNetworkDiskCache; +class QNetworkAccessManager; class History; class AutoFill; @@ -39,7 +40,6 @@ class RSSManager; class ProxyStyle; class PluginProxy; class BrowserWindow; -class NetworkManager; class BrowsingLibrary; class DownloadManager; class UserAgentManager; @@ -92,7 +92,7 @@ public: BrowsingLibrary* browsingLibrary(); RSSManager* rssManager(); - NetworkManager* networkManager(); + QNetworkAccessManager* networkManager(); RestoreManager* restoreManager(); DownloadManager* downloadManager(); UserAgentManager* userAgentManager(); @@ -157,7 +157,7 @@ private: BrowsingLibrary* m_browsingLibrary; RSSManager* m_rssManager; - NetworkManager* m_networkManager; + QNetworkAccessManager* m_networkManager; RestoreManager* m_restoreManager; DownloadManager* m_downloadManager; UserAgentManager* m_userAgentManager; diff --git a/src/lib/app/mainmenu.cpp b/src/lib/app/mainmenu.cpp index 9f2bec06a..fa575015b 100644 --- a/src/lib/app/mainmenu.cpp +++ b/src/lib/app/mainmenu.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #ifdef Q_OS_MAC @@ -303,11 +303,13 @@ void MainMenu::webSearch() void MainMenu::showSiteInfo() { +#if QTWEBENGINE_DISABLED if (m_window) { SiteInfo* info = new SiteInfo(m_window->weView(), m_window); info->setAttribute(Qt::WA_DeleteOnClose); info->show(); } +#endif } void MainMenu::showDownloadManager() @@ -403,8 +405,10 @@ void MainMenu::aboutToShowViewMenu() m_actions[QSL("View/FullScreen")]->setChecked(m_window->isFullScreen()); m_actions[QSL("View/PageSource")]->setEnabled(true); +#if QTWEBENGINE_DISABLED #if QTWEBKIT_FROM_2_3 - m_actions[QSL("View/CaretBrowsing")]->setChecked(m_window->weView()->settings()->testAttribute(QWebSettings::CaretBrowsingEnabled)); + m_actions[QSL("View/CaretBrowsing")]->setChecked(m_window->weView()->settings()->testAttribute(QWebEngineSettings::CaretBrowsingEnabled)); +#endif #endif } @@ -421,12 +425,12 @@ void MainMenu::aboutToShowEditMenu() WebView* view = m_window->weView(); - m_actions[QSL("Edit/Undo")]->setEnabled(view->pageAction(QWebPage::Undo)->isEnabled()); - m_actions[QSL("Edit/Redo")]->setEnabled(view->pageAction(QWebPage::Redo)->isEnabled()); - m_actions[QSL("Edit/Cut")]->setEnabled(view->pageAction(QWebPage::Cut)->isEnabled()); - m_actions[QSL("Edit/Copy")]->setEnabled(view->pageAction(QWebPage::Copy)->isEnabled()); - m_actions[QSL("Edit/Paste")]->setEnabled(view->pageAction(QWebPage::Paste)->isEnabled()); - m_actions[QSL("Edit/SelectAll")]->setEnabled(view->pageAction(QWebPage::SelectAll)->isEnabled()); + m_actions[QSL("Edit/Undo")]->setEnabled(view->pageAction(QWebEnginePage::Undo)->isEnabled()); + m_actions[QSL("Edit/Redo")]->setEnabled(view->pageAction(QWebEnginePage::Redo)->isEnabled()); + m_actions[QSL("Edit/Cut")]->setEnabled(view->pageAction(QWebEnginePage::Cut)->isEnabled()); + m_actions[QSL("Edit/Copy")]->setEnabled(view->pageAction(QWebEnginePage::Copy)->isEnabled()); + m_actions[QSL("Edit/Paste")]->setEnabled(view->pageAction(QWebEnginePage::Paste)->isEnabled()); + m_actions[QSL("Edit/SelectAll")]->setEnabled(view->pageAction(QWebEnginePage::SelectAll)->isEnabled()); m_actions[QSL("Edit/Find")]->setEnabled(true); } diff --git a/src/lib/app/profilemanager.cpp b/src/lib/app/profilemanager.cpp index a6441477b..4262bb5cc 100644 --- a/src/lib/app/profilemanager.cpp +++ b/src/lib/app/profilemanager.cpp @@ -132,14 +132,20 @@ QString ProfileManager::currentProfile() const QString ProfileManager::startingProfile() const { +#if QTWEBENGINE_DISABLED QSettings settings(DataPaths::path(DataPaths::Profiles) + QLatin1String("/profiles.ini"), QSettings::IniFormat); return settings.value(QLatin1String("Profiles/startProfile"), QLatin1String("default")).toString(); +#else + return QString("qtwebengine"); +#endif } void ProfileManager::setStartingProfile(const QString &profileName) { +#if QTWEBENGINE_DISABLED QSettings settings(DataPaths::path(DataPaths::Profiles) + QLatin1String("/profiles.ini"), QSettings::IniFormat); settings.setValue(QLatin1String("Profiles/startProfile"), profileName); +#endif } QStringList ProfileManager::availableProfiles() const diff --git a/src/lib/app/qzcommon.h b/src/lib/app/qzcommon.h index 73f861542..8c77dfcc3 100644 --- a/src/lib/app/qzcommon.h +++ b/src/lib/app/qzcommon.h @@ -146,6 +146,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(Qz::NewTabPositionFlags) #define DEFAULT_DOWNLOAD_USE_NATIVE_DIALOG true #endif +#if QTWEBENGINE_DISABLED #define QTWEBKIT_FROM_2_2 \ (QT_VERSION >= 0x050000 || (QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 2, 0))) @@ -157,5 +158,15 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(Qz::NewTabPositionFlags) #define QTWEBKIT_TO_2_3 \ (QT_VERSION < 0x050000 && (QTWEBKIT_VERSION < QTWEBKIT_VERSION_CHECK(2, 3, 0))) +#else + +#define QTWEBKIT_FROM_2_2 true +#define QTWEBKIT_TO_2_2 false +#define QTWEBKIT_FROM_2_3 true +#define QTWEBKIT_TO_2_3 false + +#undef USE_QTWEBKIT_2_2 +#undef USE_QTWEBKIT_2_3 +#endif #endif // QZCOMMON_H diff --git a/src/lib/autofill/autofill.cpp b/src/lib/autofill/autofill.cpp index d064e8e7e..efc7aca72 100644 --- a/src/lib/autofill/autofill.cpp +++ b/src/lib/autofill/autofill.cpp @@ -30,7 +30,6 @@ #include #include -#include #include #if QT_VERSION >= 0x050000 @@ -170,7 +169,7 @@ void AutoFill::removeAllEntries() } // If password was filled in the page, returns all saved passwords on this page -QVector AutoFill::completeFrame(QWebFrame* frame) +QVector AutoFill::completeFrame(QWebEngineFrame* frame) { bool completed = false; QVector list; @@ -202,12 +201,13 @@ QVector AutoFill::completeFrame(QWebFrame* frame) void AutoFill::post(const QNetworkRequest &request, const QByteArray &outgoingData) { +#if QTWEBENGINE_DISABLED // Don't save in private browsing if (mApp->isPrivate()) { return; } - QWebFrame* frame = qobject_cast(request.originatingObject()); + QWebEngineFrame* frame = qobject_cast(request.originatingObject()); if (!frame) { return; } @@ -259,6 +259,7 @@ void AutoFill::post(const QNetworkRequest &request, const QByteArray &outgoingDa AutoFillNotification* aWidget = new AutoFillNotification(frameUrl, formData, updateData); webView->addNotification(aWidget); +#endif } QByteArray AutoFill::exportPasswords() diff --git a/src/lib/autofill/autofill.h b/src/lib/autofill/autofill.h index 42e37a7ab..e45991da8 100644 --- a/src/lib/autofill/autofill.h +++ b/src/lib/autofill/autofill.h @@ -23,7 +23,7 @@ #include "qzcommon.h" class QUrl; -class QWebFrame; +class QWebEngineFrame; class QWebElement; class QNetworkRequest; @@ -61,7 +61,7 @@ public: void removeAllEntries(); void post(const QNetworkRequest &request, const QByteArray &outgoingData); - QVector completeFrame(QWebFrame* frame); + QVector completeFrame(QWebEngineFrame *frame); QByteArray exportPasswords(); bool importPasswords(const QByteArray &data); diff --git a/src/lib/autofill/pageformcompleter.cpp b/src/lib/autofill/pageformcompleter.cpp index 46aa93b1a..fac0127c6 100644 --- a/src/lib/autofill/pageformcompleter.cpp +++ b/src/lib/autofill/pageformcompleter.cpp @@ -18,9 +18,7 @@ #include "pageformcompleter.h" #include "qzregexp.h" -#include -#include -#include +#include #if QT_VERSION >= 0x050000 #include #endif @@ -31,25 +29,25 @@ PageFormCompleter::PageFormCompleter() { } -PageFormData PageFormCompleter::extractFormData(QWebPage* page, const QByteArray &postData) +PageFormData PageFormCompleter::extractFormData(QWebEnginePage* page, const QByteArray &postData) { m_page = page; return extractFormData(postData); } -PageFormData PageFormCompleter::extractFormData(QWebFrame* frame, const QByteArray &postData) +PageFormData PageFormCompleter::extractFormData(QWebEngineFrame* frame, const QByteArray &postData) { m_frame = frame; return extractFormData(postData); } -bool PageFormCompleter::completeFormData(QWebPage* page, const QByteArray &data) +bool PageFormCompleter::completeFormData(QWebEnginePage* page, const QByteArray &data) { m_page = page; return completeFormData(data); } -bool PageFormCompleter::completeFormData(QWebFrame* frame, const QByteArray &data) +bool PageFormCompleter::completeFormData(QWebEngineFrame* frame, const QByteArray &data) { m_frame = frame; return completeFormData(data); @@ -73,6 +71,7 @@ PageFormData PageFormCompleter::extractFormData(const QByteArray &postData) cons return formData; } +#if QTWEBENGINE_DISABLED const QWebElementCollection allForms = getAllElementsFromPage("form"); // Find form that contains password value sent in data @@ -109,6 +108,7 @@ PageFormData PageFormCompleter::extractFormData(const QByteArray &postData) cons formData.username = usernameValue; formData.password = passwordValue; +#endif return formData; } @@ -123,6 +123,7 @@ bool PageFormCompleter::completeFormData(const QByteArray &data) const QStringList inputTypes; inputTypes << "text" << "password" << "email"; +#if QTWEBENGINE_DISABLED // Find all input elements in the page const QWebElementCollection inputs = getAllElementsFromPage("input"); @@ -144,6 +145,7 @@ bool PageFormCompleter::completeFormData(const QByteArray &data) const } } } +#endif return completed; } @@ -212,6 +214,7 @@ QByteArray PageFormCompleter::convertWebKitFormBoundaryIfNecessary(const QByteAr PageFormCompleter::QueryItem PageFormCompleter::findUsername(const QWebElement &form) const { +#if QTWEBENGINE_DISABLED // Try to find username (or email) field in the form. QStringList selectors; selectors << "input[type=\"text\"][name*=\"user\"]" @@ -234,6 +237,7 @@ PageFormCompleter::QueryItem PageFormCompleter::findUsername(const QWebElement & } } } +#endif return QueryItem(); } @@ -254,6 +258,7 @@ PageFormCompleter::QueryItems PageFormCompleter::createQueryItems(QByteArray dat return arguments; } +#if QTWEBENGINE_DISABLED QWebElementCollection PageFormCompleter::getAllElementsFromPage(const QString &selector) const { QWebElementCollection list; @@ -280,3 +285,5 @@ QWebElementCollection PageFormCompleter::getAllElementsFromPage(const QString &s return list; } + +#endif diff --git a/src/lib/autofill/pageformcompleter.h b/src/lib/autofill/pageformcompleter.h index 6fafdc538..da28fa3ba 100644 --- a/src/lib/autofill/pageformcompleter.h +++ b/src/lib/autofill/pageformcompleter.h @@ -24,8 +24,8 @@ #include "qzcommon.h" -class QWebPage; -class QWebFrame; +class QWebEnginePage; +class QWebEngineFrame; class QWebElement; class QWebElementCollection; @@ -44,11 +44,11 @@ class QUPZILLA_EXPORT PageFormCompleter public: explicit PageFormCompleter(); - PageFormData extractFormData(QWebPage* page, const QByteArray &postData); - PageFormData extractFormData(QWebFrame* frame, const QByteArray &postData); + PageFormData extractFormData(QWebEnginePage* page, const QByteArray &postData); + PageFormData extractFormData(QWebEngineFrame* frame, const QByteArray &postData); - bool completeFormData(QWebPage* page, const QByteArray &data); - bool completeFormData(QWebFrame* frame, const QByteArray &data); + bool completeFormData(QWebEnginePage* page, const QByteArray &data); + bool completeFormData(QWebEngineFrame* frame, const QByteArray &data); private: typedef QPair QueryItem; @@ -62,10 +62,12 @@ private: QByteArray convertWebKitFormBoundaryIfNecessary(const QByteArray &data) const; QueryItem findUsername(const QWebElement &form) const; QueryItems createQueryItems(QByteArray data) const; +#if QTWEBENGINE_DISABLED QWebElementCollection getAllElementsFromPage(const QString &selector) const; +#endif - QWebPage* m_page; - QWebFrame* m_frame; + QWebEnginePage* m_page; + QWebEngineFrame* m_frame; }; #endif // PAGEFORMCOMPLETER_H diff --git a/src/lib/bookmarks/bookmarksicon.cpp b/src/lib/bookmarks/bookmarksicon.cpp index e5b420052..ee92c43ba 100644 --- a/src/lib/bookmarks/bookmarksicon.cpp +++ b/src/lib/bookmarks/bookmarksicon.cpp @@ -40,7 +40,9 @@ BookmarksIcon::BookmarksIcon(QWidget* parent) connect(mApp->bookmarks(), SIGNAL(bookmarkAdded(BookmarkItem*)), this, SLOT(bookmarksChanged())); connect(mApp->bookmarks(), SIGNAL(bookmarkRemoved(BookmarkItem*)), this, SLOT(bookmarksChanged())); connect(mApp->bookmarks(), SIGNAL(bookmarkChanged(BookmarkItem*)), this, SLOT(bookmarksChanged())); +#if QTWEBENGINE_DISABLED connect(mApp->plugins()->speedDial(), SIGNAL(pagesChanged()), this, SLOT(speedDialChanged())); +#endif connect(this, SIGNAL(clicked(QPoint)), this, SLOT(iconClicked())); } @@ -59,7 +61,9 @@ void BookmarksIcon::checkBookmark(const QUrl &url, bool forceCheck) QList items = mApp->bookmarks()->searchBookmarks(url); m_bookmark = items.isEmpty() ? 0 : items.first(); - if (m_bookmark || !mApp->plugins()->speedDial()->pageForUrl(url).url.isEmpty()) { +#if QTWEBENGINE_DISABLED +#endif + if (m_bookmark /*|| !mApp->plugins()->speedDial()->pageForUrl(url).url.isEmpty()*/) { setBookmarkSaved(); } else { diff --git a/src/lib/bookmarks/bookmarkswidget.cpp b/src/lib/bookmarks/bookmarkswidget.cpp index 384f2a825..ced0fbac9 100644 --- a/src/lib/bookmarks/bookmarkswidget.cpp +++ b/src/lib/bookmarks/bookmarkswidget.cpp @@ -50,6 +50,7 @@ BookmarksWidget::~BookmarksWidget() void BookmarksWidget::toggleSpeedDial() { +#if QTWEBENGINE_DISABLED const SpeedDial::Page page = m_speedDial->pageForUrl(m_view->url()); if (page.url.isEmpty()) { @@ -61,6 +62,7 @@ void BookmarksWidget::toggleSpeedDial() } closePopup(); +#endif } void BookmarksWidget::toggleBookmark() @@ -104,6 +106,7 @@ void BookmarksWidget::init() // it dynamically changes and so, it's not good choice for this widget. setLayoutDirection(QApplication::layoutDirection()); +#if QTWEBENGINE_DISABLED // Init SpeedDial button const SpeedDial::Page page = m_speedDial->pageForUrl(m_view->url()); if (page.url.isEmpty()) { @@ -114,6 +117,7 @@ void BookmarksWidget::init() ui->speeddialButton->setFlat(false); ui->speeddialButton->setText(tr("Remove from Speed Dial")); } +#endif // Init Bookmarks button if (m_bookmark) { diff --git a/src/lib/cookies/cookiejar.cpp b/src/lib/cookies/cookiejar.cpp index eefef89c1..012682470 100644 --- a/src/lib/cookies/cookiejar.cpp +++ b/src/lib/cookies/cookiejar.cpp @@ -23,7 +23,7 @@ #include "qztools.h" #include -#include +#include #include //#define COOKIE_DEBUG @@ -56,6 +56,7 @@ void CookieJar::loadSettings() m_blacklist = settings.value("blacklist", QStringList()).toStringList(); settings.endGroup(); +#if QTWEBENGINE_DISABLED #if QTWEBKIT_FROM_2_3 switch (m_allowThirdParty) { case 0: @@ -71,6 +72,7 @@ void CookieJar::loadSettings() break; } #endif +#endif } void CookieJar::setAllowCookies(bool allow) diff --git a/src/lib/downloads/downloadfilehelper.cpp b/src/lib/downloads/downloadfilehelper.cpp index 42a154a7f..446a21daa 100644 --- a/src/lib/downloads/downloadfilehelper.cpp +++ b/src/lib/downloads/downloadfilehelper.cpp @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #if QT_VERSION >= 0x050000 diff --git a/src/lib/downloads/downloaditem.cpp b/src/lib/downloads/downloaditem.cpp index 99e2059c3..ae352f21a 100644 --- a/src/lib/downloads/downloaditem.cpp +++ b/src/lib/downloads/downloaditem.cpp @@ -138,6 +138,7 @@ void DownloadItem::startDownloadingFromFtp(const QUrl &url) return; } +#if QTWEBENGINE_DISABLED m_ftpDownloader = new FtpDownloader(this); connect(m_ftpDownloader, SIGNAL(finished()), this, SLOT(finished())); connect(m_ftpDownloader, SIGNAL(dataTransferProgress(qint64,qint64)), this, SLOT(downloadProgress(qint64,qint64))); @@ -153,6 +154,7 @@ void DownloadItem::startDownloadingFromFtp(const QUrl &url) if (m_ftpDownloader->error() != QFtp::NoError) { error(); } +#endif } void DownloadItem::parentResized(const QSize &size) @@ -182,7 +184,7 @@ void DownloadItem::finished() #endif m_timer.stop(); - QString host = m_reply ? m_reply->url().host() : m_ftpDownloader->url().host(); + QString host = m_reply->url().host(); ui->downloadInfo->setText(tr("Done - %1 (%2)").arg(host, QDateTime::currentDateTime().toString(Qt::DefaultLocaleShortDate))); ui->progressBar->hide(); ui->button->hide(); @@ -193,7 +195,9 @@ void DownloadItem::finished() m_reply->deleteLater(); } else { +#if QTWEBENGINE_DISABLED m_ftpDownloader->deleteLater(); +#endif } m_item->setSizeHint(sizeHint()); @@ -327,7 +331,9 @@ void DownloadItem::stop(bool askForDeleteFile) host = m_reply->url().host(); } else if (m_ftpDownloader) { +#if QTWEBENGINE_DISABLED host = m_ftpDownloader->url().host(); +#endif } m_openAfterFinish = false; m_timer.stop(); @@ -335,8 +341,10 @@ void DownloadItem::stop(bool askForDeleteFile) m_reply->abort(); } else if (m_ftpDownloader) { +#if QTWEBENGINE_DISABLED m_ftpDownloader->abort(); m_ftpDownloader->close(); +#endif } QString outputfile = QFileInfo(m_outputFile).absoluteFilePath(); m_outputFile.close(); @@ -455,10 +463,12 @@ void DownloadItem::error() if (m_reply && m_reply->error() != QNetworkReply::NoError) { ui->downloadInfo->setText(tr("Error: ") + m_reply->errorString()); } +#if QTWEBENGINE_DISABLED else if (m_ftpDownloader && m_ftpDownloader->error() != QFtp::NoError) { stop(false); ui->downloadInfo->setText(tr("Error: ") + m_ftpDownloader->errorString()); } +#endif } void DownloadItem::updateDownload() @@ -468,6 +478,7 @@ void DownloadItem::updateDownload() #endif // after caling stop() (from readyRead()) m_reply will be a dangling pointer, // thus it should be checked after m_outputFile.isOpen() +#if QTWEBENGINE_DISABLED if (ui->progressBar->maximum() == 0 && m_outputFile.isOpen() && ((m_reply && m_reply->isFinished()) || (m_ftpDownloader && m_ftpDownloader->isFinished()) @@ -476,6 +487,13 @@ void DownloadItem::updateDownload() downloadProgress(0, 0); finished(); } +#else + if (ui->progressBar->maximum() == 0 && m_outputFile.isOpen() && + ((m_reply && m_reply->isFinished()))) { + downloadProgress(0, 0); + finished(); + } +#endif } DownloadItem::~DownloadItem() diff --git a/src/lib/downloads/downloadmanager.cpp b/src/lib/downloads/downloadmanager.cpp index e6bfbe051..9d00529d1 100644 --- a/src/lib/downloads/downloadmanager.cpp +++ b/src/lib/downloads/downloadmanager.cpp @@ -221,9 +221,12 @@ void DownloadManager::download(const QNetworkRequest &request, const DownloadInf QNetworkRequest req = request; req.setAttribute((QNetworkRequest::Attribute)(QNetworkRequest::User + 100), 0); +#if QTWEBENGINE_DISABLED handleUnsupportedContent(m_networkManager->get(req), info); +#endif } +#if QTWEBENGINE_DISABLED void DownloadManager::handleUnsupportedContent(QNetworkReply* reply, const DownloadInfo &info) { if (!info.page || reply->url().scheme() == QLatin1String("qupzilla")) { @@ -247,6 +250,7 @@ void DownloadManager::handleUnsupportedContent(QNetworkReply* reply, const Downl h->setListWidget(ui->list); h->handleUnsupportedContent(reply, info); } +#endif void DownloadManager::itemCreated(QListWidgetItem* item, DownloadItem* downItem) { @@ -349,3 +353,4 @@ DownloadManager::~DownloadManager() { delete ui; } + diff --git a/src/lib/downloads/downloadmanager.h b/src/lib/downloads/downloadmanager.h index bf5de298b..a3f570d4c 100644 --- a/src/lib/downloads/downloadmanager.h +++ b/src/lib/downloads/downloadmanager.h @@ -30,12 +30,12 @@ class DownloadManager; class QNetworkReply; class QNetworkRequest; +class QNetworkAccessManager; class QListWidgetItem; class QUrl; class DownloadItem; class EcWin7; -class NetworkManager; class WebPage; class QUPZILLA_EXPORT DownloadManager : public QWidget @@ -65,7 +65,10 @@ public: void loadSettings(); void download(const QNetworkRequest &request, const DownloadInfo &info); + +#if QTWEBENGINE_DISABLED void handleUnsupportedContent(QNetworkReply* reply, const DownloadInfo &info); +#endif bool canClose(); @@ -107,7 +110,7 @@ private: void keyPressEvent(QKeyEvent* e); Ui::DownloadManager* ui; - NetworkManager* m_networkManager; + QNetworkAccessManager* m_networkManager; QBasicTimer m_timer; QString m_lastDownloadPath; diff --git a/src/lib/history/historymenu.cpp b/src/lib/history/historymenu.cpp index 6ac6b7b2d..bc5de035f 100644 --- a/src/lib/history/historymenu.cpp +++ b/src/lib/history/historymenu.cpp @@ -27,7 +27,7 @@ #include "qzsettings.h" #include -#include +#include #include static QKeySequence actionShortcut(QKeySequence shortcut, QKeySequence fallback, QKeySequence shortcutRTL, QKeySequence fallbackRTL) diff --git a/src/lib/history/webhistoryinterface.cpp b/src/lib/history/webhistoryinterface.cpp index 8ad7818e1..c1540cf4a 100644 --- a/src/lib/history/webhistoryinterface.cpp +++ b/src/lib/history/webhistoryinterface.cpp @@ -19,8 +19,10 @@ #include "mainapplication.h" #include "history.h" +#if QTWEBENGINE_DISABLED + WebHistoryInterface::WebHistoryInterface(QObject* parent) - : QWebHistoryInterface(parent) + : QWebEngineHistoryInterface(parent) { } @@ -33,3 +35,5 @@ bool WebHistoryInterface::historyContains(const QString &url) const { return m_clickedLinks.find(url) != m_clickedLinks.end(); } + +#endif diff --git a/src/lib/history/webhistoryinterface.h b/src/lib/history/webhistoryinterface.h index 374a257a5..0e305c9aa 100644 --- a/src/lib/history/webhistoryinterface.h +++ b/src/lib/history/webhistoryinterface.h @@ -18,12 +18,13 @@ #ifndef WEBHISTORYINTERFACE_H #define WEBHISTORYINTERFACE_H -#include #include #include "qzcommon.h" -class QUPZILLA_EXPORT WebHistoryInterface : public QWebHistoryInterface +#if QTWEBENGINE_DISABLED + +class QUPZILLA_EXPORT WebHistoryInterface : public QWebEngineHistoryInterface { public: explicit WebHistoryInterface(QObject* parent = 0); @@ -36,4 +37,6 @@ private: }; +#endif + #endif // WEBHISTORYINTERFACE_H diff --git a/src/lib/lib.pro b/src/lib/lib.pro index feefcf6c9..37421098b 100644 --- a/src/lib/lib.pro +++ b/src/lib/lib.pro @@ -1,5 +1,5 @@ isEqual(QT_MAJOR_VERSION, 5) { - QT += webkitwidgets network widgets printsupport sql script gui-private + QT += webenginewidgets network widgets printsupport sql script gui-private } else { QT += core gui webkit sql network script concurrent } @@ -12,7 +12,9 @@ DEFINES *= QUPZILLA_SHAREDLIBRARY include(../defines.pri) include(../../translations/translations.pri) include(3rdparty/qtsingleapplication/qtsingleapplication.pri) -include(plugins/qtwebkit/qtwebkit-plugins.pri) + +# QTWEBENGINE DISABLED +#include(plugins/qtwebkit/qtwebkit-plugins.pri) CONFIG(debug, debug|release): include(../../tests/modeltest/modeltest.pri) diff --git a/src/lib/navigation/locationbar.cpp b/src/lib/navigation/locationbar.cpp index 939445591..d9c8e6987 100644 --- a/src/lib/navigation/locationbar.cpp +++ b/src/lib/navigation/locationbar.cpp @@ -61,7 +61,6 @@ LocationBar::LocationBar(BrowserWindow* window) m_bookmarkIcon = new BookmarksIcon(this); m_goIcon = new GoIcon(this); - m_rssIcon = new RssIcon(this); m_siteIcon = new SiteIcon(m_window, this); m_autofillIcon = new AutoFillIcon(this); DownIcon* down = new DownIcon(this); @@ -69,7 +68,6 @@ LocationBar::LocationBar(BrowserWindow* window) addWidget(m_siteIcon, LineEdit::LeftSide); addWidget(m_autofillIcon, LineEdit::RightSide); addWidget(m_bookmarkIcon, LineEdit::RightSide); - addWidget(m_rssIcon, LineEdit::RightSide); addWidget(m_goIcon, LineEdit::RightSide); addWidget(down, LineEdit::RightSide); @@ -104,7 +102,6 @@ LocationBar::LocationBar(BrowserWindow* window) // Hide icons by default m_goIcon->setVisible(qzSettings->alwaysShowGoIcon); - m_rssIcon->hide(); m_autofillIcon->hide(); QTimer::singleShot(0, this, SLOT(updatePlaceHolderText())); @@ -120,17 +117,18 @@ void LocationBar::setWebView(TabbedWebView* view) m_webView = view; m_bookmarkIcon->setWebView(m_webView); - m_rssIcon->setWebView(m_webView); m_siteIcon->setWebView(m_webView); m_autofillIcon->setWebView(m_webView); connect(m_webView, SIGNAL(loadStarted()), SLOT(loadStarted())); connect(m_webView, SIGNAL(loadProgress(int)), SLOT(loadProgress(int))); connect(m_webView, SIGNAL(loadFinished(bool)), SLOT(loadFinished())); - connect(m_webView, SIGNAL(iconChanged()), this, SLOT(updateSiteIcon())); connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(showUrl(QUrl))); connect(m_webView, SIGNAL(rssChanged(bool)), this, SLOT(setRssIconVisible(bool))); connect(m_webView, SIGNAL(privacyChanged(bool)), this, SLOT(setPrivacyState(bool))); +#if QTWEBENGINE_DISABLED + connect(m_webView, SIGNAL(iconChanged()), this, SLOT(updateSiteIcon())); +#endif } void LocationBar::setText(const QString &text) @@ -299,11 +297,9 @@ void LocationBar::setGoIconVisible(bool state) { if (state) { m_bookmarkIcon->hide(); - m_rssIcon->hide(); m_goIcon->show(); } else { - m_rssIcon->setVisible(m_webView && m_webView->hasRss()); m_bookmarkIcon->show(); if (!qzSettings->alwaysShowGoIcon) { @@ -316,8 +312,6 @@ void LocationBar::setGoIconVisible(bool state) void LocationBar::setRssIconVisible(bool state) { - m_rssIcon->setVisible(state); - updateTextMargins(); } diff --git a/src/lib/navigation/navigationbar.cpp b/src/lib/navigation/navigationbar.cpp index 9e6c0a892..7eedf2889 100644 --- a/src/lib/navigation/navigationbar.cpp +++ b/src/lib/navigation/navigationbar.cpp @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include #include @@ -212,13 +212,13 @@ void NavigationBar::aboutToShowHistoryBackMenu() return; } m_menuBack->clear(); - QWebHistory* history = m_window->weView()->history(); + QWebEngineHistory* history = m_window->weView()->history(); int curindex = history->currentItemIndex(); int count = 0; for (int i = curindex - 1; i >= 0; i--) { - QWebHistoryItem item = history->itemAt(i); + QWebEngineHistoryItem item = history->itemAt(i); if (item.isValid()) { QString title = titleForUrl(item.title(), item.url()); @@ -247,12 +247,12 @@ void NavigationBar::aboutToShowHistoryNextMenu() } m_menuForward->clear(); - QWebHistory* history = m_window->weView()->history(); + QWebEngineHistory* history = m_window->weView()->history(); int curindex = history->currentItemIndex(); int count = 0; for (int i = curindex + 1; i < history->count(); i++) { - QWebHistoryItem item = history->itemAt(i); + QWebEngineHistoryItem item = history->itemAt(i); if (item.isValid()) { QString title = titleForUrl(item.title(), item.url()); @@ -276,7 +276,7 @@ void NavigationBar::aboutToShowHistoryNextMenu() void NavigationBar::clearHistory() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); history->clear(); refreshHistory(); } @@ -290,7 +290,7 @@ void NavigationBar::contextMenuRequested(const QPoint &pos) void NavigationBar::loadHistoryIndex() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); if (QAction* action = qobject_cast(sender())) { loadHistoryItem(history->itemAt(action->data().toInt())); @@ -307,7 +307,7 @@ void NavigationBar::loadHistoryIndexInNewTab(int index) return; } - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); loadHistoryItemInNewTab(history->itemAt(index)); } @@ -317,7 +317,7 @@ void NavigationBar::refreshHistory() return; } - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); m_buttonBack->setEnabled(history->canGoBack()); m_buttonForward->setEnabled(history->canGoForward()); } @@ -334,13 +334,13 @@ void NavigationBar::reload() void NavigationBar::goBack() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); history->back(); } void NavigationBar::goBackInNewTab() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); if (!history->canGoBack()) { return; @@ -351,13 +351,13 @@ void NavigationBar::goBackInNewTab() void NavigationBar::goForward() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); history->forward(); } void NavigationBar::goForwardInNewTab() { - QWebHistory* history = m_window->weView()->page()->history(); + QWebEngineHistory* history = m_window->weView()->page()->history(); if (!history->canGoForward()) { return; @@ -387,19 +387,19 @@ QIcon NavigationBar::iconForPage(const QUrl &url, const QIcon &sIcon) return icon; } -void NavigationBar::loadHistoryItem(const QWebHistoryItem &item) +void NavigationBar::loadHistoryItem(const QWebEngineHistoryItem &item) { m_window->weView()->page()->history()->goToItem(item); refreshHistory(); } -void NavigationBar::loadHistoryItemInNewTab(const QWebHistoryItem &item) +void NavigationBar::loadHistoryItemInNewTab(const QWebEngineHistoryItem &item) { TabWidget* tabWidget = m_window->tabWidget(); int tabIndex = tabWidget->duplicateTab(tabWidget->currentIndex()); - QWebHistory* history = m_window->weView(tabIndex)->page()->history(); + QWebEngineHistory* history = m_window->weView(tabIndex)->page()->history(); history->goToItem(item); if (qzSettings->newTabPosition == Qz::NT_SelectedTab) { diff --git a/src/lib/navigation/navigationbar.h b/src/lib/navigation/navigationbar.h index ba3c171e0..ec6b4f3ae 100644 --- a/src/lib/navigation/navigationbar.h +++ b/src/lib/navigation/navigationbar.h @@ -24,7 +24,7 @@ class QHBoxLayout; class QSplitter; -class QWebHistoryItem; +class QWebEngineHistoryItem; class ToolButton; class WebSearchBar; @@ -90,8 +90,8 @@ private: QString titleForUrl(QString title, const QUrl &url); QIcon iconForPage(const QUrl &url, const QIcon &sIcon); - void loadHistoryItem(const QWebHistoryItem &item); - void loadHistoryItemInNewTab(const QWebHistoryItem &item); + void loadHistoryItem(const QWebEngineHistoryItem &item); + void loadHistoryItemInNewTab(const QWebEngineHistoryItem &item); BrowserWindow* m_window; diff --git a/src/lib/navigation/websearchbar.cpp b/src/lib/navigation/websearchbar.cpp index 9680ac2de..45c2e6a7f 100644 --- a/src/lib/navigation/websearchbar.cpp +++ b/src/lib/navigation/websearchbar.cpp @@ -36,7 +36,9 @@ #include #include #include -#include +#if QTWEBENGINE_DISABLED +#include +#endif #include #include @@ -217,8 +219,10 @@ void WebSearchBar::searchInNewTab() void WebSearchBar::completeMenuWithAvailableEngines(QMenu* menu) { + Q_UNUSED(menu) +#if QTWEBENGINE_DISABLED WebView* view = m_window->weView(); - QWebFrame* frame = view->page()->mainFrame(); + QWebEngineFrame* frame = view->page()->mainFrame(); QWebElementCollection elements = frame->documentElement().findAll(QLatin1String("link[rel=search]")); foreach (const QWebElement &element, elements) { @@ -237,6 +241,7 @@ void WebSearchBar::completeMenuWithAvailableEngines(QMenu* menu) menu->addAction(view->icon(), tr("Add %1 ...").arg(title), this, SLOT(addEngineFromAction()))->setData(url); } +#endif } void WebSearchBar::addEngineFromAction() diff --git a/src/lib/network/cabundleupdater.cpp b/src/lib/network/cabundleupdater.cpp index e8dcc707b..12469e354 100644 --- a/src/lib/network/cabundleupdater.cpp +++ b/src/lib/network/cabundleupdater.cpp @@ -27,6 +27,8 @@ #include #include +#if QTWEBENGINE_DISABLED + CaBundleUpdater::CaBundleUpdater(NetworkManager* manager, QObject* parent) : QObject(parent) , m_manager(manager) @@ -146,3 +148,5 @@ void CaBundleUpdater::replyFinished() mApp->networkManager()->loadSettings(); } } + +#endif diff --git a/src/lib/network/cabundleupdater.h b/src/lib/network/cabundleupdater.h index 4d6295da5..d40c59233 100644 --- a/src/lib/network/cabundleupdater.h +++ b/src/lib/network/cabundleupdater.h @@ -18,6 +18,8 @@ #ifndef CABUNDLEUPDATER_H #define CABUNDLEUPDATER_H +#if QTWEBENGINE_DISABLED + #include #include "qzcommon.h" @@ -54,4 +56,6 @@ private: int m_latestBundleVersion; }; +#endif + #endif // CABUNDLEUPDATER_H diff --git a/src/lib/network/networkmanager.cpp b/src/lib/network/networkmanager.cpp index 649728917..a5e69ef16 100644 --- a/src/lib/network/networkmanager.cpp +++ b/src/lib/network/networkmanager.cpp @@ -54,6 +54,8 @@ #include #include +#if QTWEBENGINE_DISABLED + static QString fileNameForCert(const QSslCertificate &cert) { QString certFileName = CertificateInfoWidget::certificateItemText(cert); @@ -74,8 +76,6 @@ NetworkManager::NetworkManager(QObject* parent) , m_ignoreAllWarnings(false) , m_disableWeakCiphers(true) { - connect(this, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), this, SLOT(authentication(QNetworkReply*,QAuthenticator*))); - connect(this, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)), this, SLOT(proxyAuthentication(QNetworkProxy,QAuthenticator*))); connect(this, SIGNAL(sslErrors(QNetworkReply*,QList)), this, SLOT(sslError(QNetworkReply*,QList))); connect(this, SIGNAL(finished(QNetworkReply*)), this, SLOT(setSSLConfiguration(QNetworkReply*))); @@ -341,7 +341,7 @@ void NetworkManager::authentication(QNetworkReply* reply, QAuthenticator* auth) } // Try to set the originating WebTab as a current tab - QWebFrame* frame = qobject_cast(reply->request().originatingObject()); + QWebEngineFrame* frame = qobject_cast(reply->request().originatingObject()); if (frame) { WebPage* page = qobject_cast(frame->page()); if (page) { @@ -462,63 +462,6 @@ void NetworkManager::ftpAuthentication(const QUrl &url, QAuthenticator* auth) } } -void NetworkManager::proxyAuthentication(const QNetworkProxy &proxy, QAuthenticator* auth) -{ - QString userName; - QString password; - QVector psws = mApp->autoFill()->getFormData(QUrl(proxy.hostName())); - - if (psws.isEmpty()) { - QDialog* dialog = new QDialog(); - dialog->setWindowTitle(tr("Proxy authorisation required")); - - QFormLayout* formLa = new QFormLayout(dialog); - - QLabel* label = new QLabel(dialog); - QLabel* userLab = new QLabel(dialog); - QLabel* passLab = new QLabel(dialog); - userLab->setText(tr("Username: ")); - passLab->setText(tr("Password: ")); - - QLineEdit* user = new QLineEdit(dialog); - QLineEdit* pass = new QLineEdit(dialog); - pass->setEchoMode(QLineEdit::Password); - - QDialogButtonBox* box = new QDialogButtonBox(dialog); - box->addButton(QDialogButtonBox::Ok); - box->addButton(QDialogButtonBox::Cancel); - connect(box, SIGNAL(rejected()), dialog, SLOT(reject())); - connect(box, SIGNAL(accepted()), dialog, SLOT(accept())); - - QCheckBox* rememberCheck = new QCheckBox(tr("Remember username and password for this proxy."), dialog); - - label->setText(tr("A username and password are being requested by proxy %1. ").arg(proxy.hostName())); - formLa->addRow(label); - formLa->addRow(userLab, user); - formLa->addRow(passLab, pass); - formLa->addRow(rememberCheck); - formLa->addWidget(box); - - if (dialog->exec() != QDialog::Accepted) { - return; - } - - if (rememberCheck->isChecked()) { - mApp->autoFill()->addEntry(QUrl(proxy.hostName()), user->text(), pass->text()); - } - - userName = user->text(); - password = pass->text(); - } - else { - userName = psws.at(0).username; - password = psws.at(0).password; - } - - auth->setUser(userName); - auth->setPassword(password); -} - QNetworkReply* NetworkManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice* outgoingData) { if (op == PostOperation && outgoingData) { @@ -775,3 +718,5 @@ void NetworkManager::loadCertificates() new CaBundleUpdater(this, this); #endif } + +#endif diff --git a/src/lib/network/networkmanager.h b/src/lib/network/networkmanager.h index d84add6cb..3881a27cc 100644 --- a/src/lib/network/networkmanager.h +++ b/src/lib/network/networkmanager.h @@ -18,6 +18,8 @@ #ifndef NETWORKMANAGER_H #define NETWORKMANAGER_H +#if QTWEBENGINE_DISABLED + #include #include @@ -64,9 +66,7 @@ signals: void sslDialogClosed(); private slots: - void authentication(QNetworkReply* reply, QAuthenticator* auth); void ftpAuthentication(const QUrl &url, QAuthenticator* auth); - void proxyAuthentication(const QNetworkProxy &proxy, QAuthenticator* auth); void sslError(QNetworkReply* reply, QList errors); void setSSLConfiguration(QNetworkReply* reply); @@ -90,4 +90,6 @@ private: bool m_sendReferer; }; +#endif + #endif // NETWORKMANAGER_H diff --git a/src/lib/network/networkmanagerproxy.cpp b/src/lib/network/networkmanagerproxy.cpp index 5bcab6f86..dfeeafbf8 100644 --- a/src/lib/network/networkmanagerproxy.cpp +++ b/src/lib/network/networkmanagerproxy.cpp @@ -23,6 +23,8 @@ #include +#if QTWEBENGINE_DISABLED + NetworkManagerProxy::NetworkManagerProxy(QObject* parent) : QNetworkAccessManager(parent) , m_page(0) @@ -57,3 +59,5 @@ QNetworkReply* NetworkManagerProxy::createRequest(QNetworkAccessManager::Operati return QNetworkAccessManager::createRequest(op, request, outgoingData); } + +#endif diff --git a/src/lib/network/networkmanagerproxy.h b/src/lib/network/networkmanagerproxy.h index b7c543733..a23085ca3 100644 --- a/src/lib/network/networkmanagerproxy.h +++ b/src/lib/network/networkmanagerproxy.h @@ -18,6 +18,8 @@ #ifndef NETWORKMANAGERPROXY_H #define NETWORKMANAGERPROXY_H +#if QTWEBENGINE_DISABLED + #include #include "qzcommon.h" @@ -40,4 +42,6 @@ private: NetworkManager* m_manager; }; +#endif + #endif // NETWORKMANAGERPROXY_H diff --git a/src/lib/network/schemehandlers/ftpschemehandler.cpp b/src/lib/network/schemehandlers/ftpschemehandler.cpp index 0f6b6ee82..07a51f65a 100644 --- a/src/lib/network/schemehandlers/ftpschemehandler.cpp +++ b/src/lib/network/schemehandlers/ftpschemehandler.cpp @@ -22,6 +22,7 @@ #include "iconprovider.h" #include "mainapplication.h" +#if QTWEBENGINE_DISABLED #include #include #include @@ -576,3 +577,5 @@ void FtpDownloader::onDone(bool err) emit finished(); } } + +#endif diff --git a/src/lib/network/schemehandlers/ftpschemehandler.h b/src/lib/network/schemehandlers/ftpschemehandler.h index 61df777a6..d953fb6e5 100644 --- a/src/lib/network/schemehandlers/ftpschemehandler.h +++ b/src/lib/network/schemehandlers/ftpschemehandler.h @@ -24,6 +24,8 @@ #include #include +#if QTWEBENGINE_DISABLED + #if QT_VERSION >= 0x050000 #include "qftp.h" #include "qurlinfo.h" @@ -128,4 +130,6 @@ signals: void finished(); void errorOccured(QFtp::Error); }; +#endif + #endif // FTPSCHEMEHANDLER_H diff --git a/src/lib/network/schemehandlers/qupzillaschemehandler.cpp b/src/lib/network/schemehandlers/qupzillaschemehandler.cpp index c66fede23..7ddb372d2 100644 --- a/src/lib/network/schemehandlers/qupzillaschemehandler.cpp +++ b/src/lib/network/schemehandlers/qupzillaschemehandler.cpp @@ -28,6 +28,8 @@ #include "datapaths.h" #include "iconprovider.h" +#if QTWEBENGINE_DISABLED + #include #include #include @@ -36,7 +38,7 @@ #if QT_VERSION < 0x050000 #include "qwebkitversion.h" #else -#include +#include #endif static QString authorString(const char* name, const QString &mail) @@ -499,3 +501,5 @@ QString QupZillaSchemeReply::configPage() return page; } + +#endif diff --git a/src/lib/network/schemehandlers/qupzillaschemehandler.h b/src/lib/network/schemehandlers/qupzillaschemehandler.h index d78b26588..be847d6a2 100644 --- a/src/lib/network/schemehandlers/qupzillaschemehandler.h +++ b/src/lib/network/schemehandlers/qupzillaschemehandler.h @@ -21,6 +21,8 @@ #include #include +#if QTWEBENGINE_DISABLED + #include "schemehandler.h" #include "qzcommon.h" @@ -60,4 +62,6 @@ private: QString m_pageName; }; +#endif + #endif // QUPZILLASCHEMEHANDLER_H diff --git a/src/lib/opensearch/searchenginesmanager.cpp b/src/lib/opensearch/searchenginesmanager.cpp index 8f9281ce7..7725cba1e 100644 --- a/src/lib/opensearch/searchenginesmanager.cpp +++ b/src/lib/opensearch/searchenginesmanager.cpp @@ -29,7 +29,6 @@ #include #include -#include #include #include @@ -261,6 +260,7 @@ void SearchEnginesManager::addEngine(const Engine &engine) void SearchEnginesManager::addEngineFromForm(const QWebElement &element, WebView* view) { +#if QTWEBENGINE_DISABLED QWebElement formElement = element.parent(); while (!formElement.isNull()) { @@ -362,6 +362,7 @@ void SearchEnginesManager::addEngineFromForm(const QWebElement &element, WebView } addEngine(engine); +#endif } void SearchEnginesManager::addEngine(OpenSearchEngine* engine) diff --git a/src/lib/other/aboutdialog.cpp b/src/lib/other/aboutdialog.cpp index 8bdc1a2fa..8864b7198 100644 --- a/src/lib/other/aboutdialog.cpp +++ b/src/lib/other/aboutdialog.cpp @@ -26,7 +26,7 @@ #if QT_VERSION < 0x050000 #include "qwebkitversion.h" #else -#include +#include #endif AboutDialog::AboutDialog(QWidget* parent) @@ -75,11 +75,15 @@ void AboutDialog::showAbout() Qz::VERSION #endif ); +#if QTWEBENGINE_DISABLED m_aboutHtml += tr("WebKit version %1

").arg(qWebKitVersion()); +#endif m_aboutHtml += QString("

© %1 %2
").arg(Qz::COPYRIGHT, Qz::AUTHOR); m_aboutHtml += tr("Build time: %1

").arg(Qz::BUILDTIME); m_aboutHtml += QString("

%1

").arg(Qz::WWWADDRESS); +#if QTWEBENGINE_DISABLED m_aboutHtml += "

" + (mApp->windowCount() > 0 ? mApp->getWindow()->weView()->page()->userAgentForUrl(QUrl()) : QString()) + "

"; +#endif m_aboutHtml += ""; } ui->textBrowser->setHtml(m_aboutHtml); diff --git a/src/lib/other/browsinglibrary.cpp b/src/lib/other/browsinglibrary.cpp index 0dd3e9cbd..b069b9d4a 100644 --- a/src/lib/other/browsinglibrary.cpp +++ b/src/lib/other/browsinglibrary.cpp @@ -34,7 +34,6 @@ BrowsingLibrary::BrowsingLibrary(BrowserWindow* window, QWidget* parent) , ui(new Ui::BrowsingLibrary) , m_historyManager(new HistoryManager(window)) , m_bookmarksManager(new BookmarksManager(window)) - , m_rssManager(mApp->rssManager()) , m_rssLoaded(false) { ui->setupUi(this); @@ -49,7 +48,6 @@ BrowsingLibrary::BrowsingLibrary(BrowserWindow* window, QWidget* parent) ui->tabs->AddTab(m_historyManager, QIcon(":/icons/other/bighistory.png"), tr("History")); ui->tabs->AddTab(m_bookmarksManager, QIcon(":/icons/other/bigstar.png"), tr("Bookmarks")); - ui->tabs->AddTab(m_rssManager, QIcon(":/icons/other/feed.png"), tr("RSS")); ui->tabs->SetMode(FancyTabWidget::Mode_LargeSidebar); ui->tabs->setFocus(); @@ -79,7 +77,6 @@ void BrowsingLibrary::currentIndexChanged(int index) case 2: if (!m_rssLoaded) { - m_rssManager->refreshTable(); m_rssLoaded = true; } ui->searchLine->hide(); @@ -134,6 +131,7 @@ void BrowsingLibrary::showBookmarks(BrowserWindow* window) void BrowsingLibrary::showRSS(BrowserWindow* window) { +#if QTWEBENGINE_DISABLED ui->tabs->SetCurrentIndex(2); show(); m_rssManager->setMainWindow(window); @@ -145,6 +143,7 @@ void BrowsingLibrary::showRSS(BrowserWindow* window) raise(); activateWindow(); +#endif } void BrowsingLibrary::closeEvent(QCloseEvent* e) @@ -155,10 +154,6 @@ void BrowsingLibrary::closeEvent(QCloseEvent* e) settings.setValue("historyState", m_historyManager->saveState()); settings.endGroup(); e->accept(); - - // Saves a few megabytes - m_rssManager->deleteAllTabs(); - m_rssLoaded = false; } void BrowsingLibrary::keyPressEvent(QKeyEvent* e) diff --git a/src/lib/other/clearprivatedata.cpp b/src/lib/other/clearprivatedata.cpp index e4b562d6c..85709242d 100644 --- a/src/lib/other/clearprivatedata.cpp +++ b/src/lib/other/clearprivatedata.cpp @@ -33,8 +33,10 @@ #include #include +#if QTWEBENGINE_DISABLED #include -#include +#endif +#include #include #include #include @@ -78,21 +80,27 @@ void ClearPrivateData::clearWebDatabases() { const QString profile = DataPaths::currentProfilePath(); +#if QTWEBENGINE_DISABLED QWebDatabase::removeAllDatabases(); +#endif QzTools::removeDir(profile + "/Databases"); } void ClearPrivateData::clearCache() { mApp->networkCache()->clear(); - QWebSettings::globalSettings()->clearMemoryCaches(); +#if QTWEBENGINE_DISABLED + QWebEngineSettings::globalSettings()->clearMemoryCaches(); +#endif QFile::remove(DataPaths::currentProfilePath() + "/ApplicationCache.db"); } void ClearPrivateData::clearIcons() { - QWebSettings::globalSettings()->clearIconDatabase(); +#if QTWEBENGINE_DISABLED + QWebEngineSettings::globalSettings()->clearIconDatabase(); +#endif IconProvider::instance()->clearIconsDatabase(); } diff --git a/src/lib/other/macmenureceiver.cpp b/src/lib/other/macmenureceiver.cpp index 7cec754c9..feeb14389 100644 --- a/src/lib/other/macmenureceiver.cpp +++ b/src/lib/other/macmenureceiver.cpp @@ -331,9 +331,9 @@ void MacMenuReceiver::quitApp() } } -void MacMenuReceiver::printPage(QWebFrame* frame) +void MacMenuReceiver::printPage(QWebEngineFrame* frame) { - callSlot("printPage", false, Q_ARG(QWebFrame*, frame)); + callSlot("printPage", false, Q_ARG(QWebEngineFrame*, frame)); } void MacMenuReceiver::showBookmarksToolbar() @@ -341,9 +341,9 @@ void MacMenuReceiver::showBookmarksToolbar() callSlot("showBookmarksToolbar"); } -void MacMenuReceiver::showSource(QWebFrame* frame, const QString &selectedHtml) +void MacMenuReceiver::showSource(QWebEngineFrame* frame, const QString &selectedHtml) { - callSlot("showSource", false, Q_ARG(QWebFrame*, frame), Q_ARG(const QString &, selectedHtml)); + callSlot("showSource", false, Q_ARG(QWebEngineFrame*, frame), Q_ARG(const QString &, selectedHtml)); } void MacMenuReceiver::bookmarkPage() diff --git a/src/lib/other/macmenureceiver.h b/src/lib/other/macmenureceiver.h index 219639fe5..12c5f9837 100644 --- a/src/lib/other/macmenureceiver.h +++ b/src/lib/other/macmenureceiver.h @@ -23,7 +23,7 @@ #include "qzcommon.h" -class QWebFrame; +class QWebEngineFrame; class Menu; class QMenu; class QAction; @@ -127,9 +127,9 @@ private slots: void closeWindow(); void quitApp(); - void printPage(QWebFrame* frame = 0); + void printPage(QWebEngineFrame* frame = 0); void showBookmarksToolbar(); - void showSource(QWebFrame* frame = 0, const QString &selectedHtml = QString()); + void showSource(QWebEngineFrame* frame = 0, const QString &selectedHtml = QString()); void bookmarkPage(); void showPageInfo(); void showWebInspector(bool toggle = true); diff --git a/src/lib/other/pagescreen.cpp b/src/lib/other/pagescreen.cpp index ee2480cd4..f833f6e48 100644 --- a/src/lib/other/pagescreen.cpp +++ b/src/lib/other/pagescreen.cpp @@ -23,9 +23,11 @@ #include "browserwindow.h" #include "settings.h" +#if QTWEBENGINE_DISABLED + #include #include -#include +#include #include #include #include @@ -191,7 +193,7 @@ void PageScreen::saveAsDocument(const QString &format) void PageScreen::createThumbnail() { - QWebPage* page = m_view->page(); + QWebEnginePage* page = m_view->page(); const int heightLimit = 20000; const QPoint originalScrollPosition = page->mainFrame()->scrollPosition(); @@ -275,3 +277,5 @@ PageScreen::~PageScreen() { delete ui; } + +#endif diff --git a/src/lib/other/pagescreen.h b/src/lib/other/pagescreen.h index 11a8c8b03..6c2b17ef2 100644 --- a/src/lib/other/pagescreen.h +++ b/src/lib/other/pagescreen.h @@ -23,6 +23,8 @@ #include "qzcommon.h" +#if QTWEBENGINE_DISABLED + namespace Ui { class PageScreen; @@ -63,4 +65,6 @@ private: QStringList m_formats; }; +#endif + #endif // PAGESCREEN_H diff --git a/src/lib/other/siteinfo.cpp b/src/lib/other/siteinfo.cpp index 3555d977c..06c19e345 100644 --- a/src/lib/other/siteinfo.cpp +++ b/src/lib/other/siteinfo.cpp @@ -26,11 +26,13 @@ #include "qztools.h" #include "iconprovider.h" +#if QTWEBENGINE_DISABLED + #include #include #include #include -#include +#include #include #include #include @@ -66,7 +68,7 @@ SiteInfo::SiteInfo(WebView* view, QWidget* parent) ui->listWidget->item(0)->setSelected(true); WebPage* webPage = view->page(); - QWebFrame* frame = view->page()->mainFrame(); + QWebEngineFrame* frame = view->page()->mainFrame(); QString title = view->title(); QSslCertificate cert = webPage->sslCertificate(); m_baseUrl = frame->baseUrl(); @@ -103,7 +105,7 @@ SiteInfo::SiteInfo(WebView* view, QWidget* parent) ui->treeTags->addTopLevelItem(item); } if (encoding.isEmpty()) { - encoding = QWebSettings::globalSettings()->defaultTextEncoding(); + encoding = QWebEngineSettings::globalSettings()->defaultTextEncoding(); } ui->encodingLabel->setText(encoding.toUpper()); @@ -298,3 +300,5 @@ SiteInfo::~SiteInfo() delete ui; delete m_certWidget; } + +#endif diff --git a/src/lib/other/siteinfo.h b/src/lib/other/siteinfo.h index 95e88c8e9..f1b862674 100644 --- a/src/lib/other/siteinfo.h +++ b/src/lib/other/siteinfo.h @@ -23,6 +23,8 @@ #include #include +#if QTWEBENGINE_DISABLED + namespace Ui { class SiteInfo; @@ -62,4 +64,6 @@ private: QUrl m_baseUrl; }; +#endif + #endif // SITEINFO_H diff --git a/src/lib/other/sourceviewer.cpp b/src/lib/other/sourceviewer.cpp index 2a305267a..c1da8e848 100644 --- a/src/lib/other/sourceviewer.cpp +++ b/src/lib/other/sourceviewer.cpp @@ -29,10 +29,11 @@ #include #include #include -#include #include -SourceViewer::SourceViewer(QWebFrame* frame, const QString &selectedHtml) +#if QTWEBENGINE_DISABLED + +SourceViewer::SourceViewer(QWebEngineFrame* frame, const QString &selectedHtml) : QWidget(0) , m_frame(frame) , m_selectedHtml(selectedHtml) @@ -231,3 +232,5 @@ void SourceViewer::goToLine() m_sourceEdit->goToLine(line); } + +#endif diff --git a/src/lib/other/sourceviewer.h b/src/lib/other/sourceviewer.h index 903b33505..a0c38687d 100644 --- a/src/lib/other/sourceviewer.h +++ b/src/lib/other/sourceviewer.h @@ -18,6 +18,8 @@ #ifndef SOURCEVIEWER_H #define SOURCEVIEWER_H +#if QTWEBENGINE_DISABLED + #include #include @@ -27,13 +29,13 @@ class PlainEditWithLines; class QBoxLayout; class QStatusBar; -class QWebFrame; +class QWebEngineFrame; class QUPZILLA_EXPORT SourceViewer : public QWidget { Q_OBJECT public: - explicit SourceViewer(QWebFrame* frame, const QString &selectedHtml); + explicit SourceViewer(QWebEngineFrame* frame, const QString &selectedHtml); PlainEditWithLines* sourceEdit() { return m_sourceEdit; } private slots: @@ -54,7 +56,7 @@ private slots: private: QBoxLayout* m_layout; PlainEditWithLines* m_sourceEdit; - QPointer m_frame; + QPointer m_frame; QStatusBar* m_statusBar; QString m_selectedHtml; @@ -66,4 +68,6 @@ private: QAction* m_actionPaste; }; +#endif + #endif // SOURCEVIEWER_H diff --git a/src/lib/other/sourceviewersearch.cpp b/src/lib/other/sourceviewersearch.cpp index ec3d96eb8..a6c3d54fe 100644 --- a/src/lib/other/sourceviewersearch.cpp +++ b/src/lib/other/sourceviewersearch.cpp @@ -24,6 +24,8 @@ #include #include +#if QTWEBENGINE_DISABLED + SourceViewerSearch::SourceViewerSearch(SourceViewer* parent) : AnimatedWidget(AnimatedWidget::Up) , m_sourceViewer(parent) @@ -132,3 +134,5 @@ bool SourceViewerSearch::eventFilter(QObject* obj, QEvent* event) return AnimatedWidget::eventFilter(obj, event); } + +#endif diff --git a/src/lib/other/sourceviewersearch.h b/src/lib/other/sourceviewersearch.h index 818c7fec2..b5e489ebc 100644 --- a/src/lib/other/sourceviewersearch.h +++ b/src/lib/other/sourceviewersearch.h @@ -23,6 +23,8 @@ #include "qzcommon.h" #include "animatedwidget.h" +#if QTWEBENGINE_DISABLED + namespace Ui { class SourceViewerSearch; @@ -59,4 +61,6 @@ private: QTextDocument::FindFlags m_findFlags; }; +#endif + #endif // SOURCEVIEWERSEARCH_H diff --git a/src/lib/other/statusbarmessage.cpp b/src/lib/other/statusbarmessage.cpp index 9e93c35b0..4e217f731 100644 --- a/src/lib/other/statusbarmessage.cpp +++ b/src/lib/other/statusbarmessage.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include TipLabel::TipLabel(QWidget* parent) @@ -125,18 +124,22 @@ void StatusBarMessage::showMessage(const QString &message) else { #endif WebView* view = m_window->weView(); - QWebFrame* mainFrame = view->page()->mainFrame(); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* mainFrame = view->page()->mainFrame(); +#endif int horizontalScrollSize = 0; int verticalScrollSize = 0; const int scrollbarSize = m_window->style()->pixelMetric(QStyle::PM_ScrollBarExtent); +#if QTWEBENGINE_DISABLED if (mainFrame->scrollBarMaximum(Qt::Horizontal)) { horizontalScrollSize = scrollbarSize; } if (mainFrame->scrollBarMaximum(Qt::Vertical)) { verticalScrollSize = scrollbarSize; } +#endif m_statusBarText->setText(message); m_statusBarText->setMaximumWidth(view->width() - verticalScrollSize); diff --git a/src/lib/other/useragentmanager.cpp b/src/lib/other/useragentmanager.cpp index 97b243f81..2143855a1 100644 --- a/src/lib/other/useragentmanager.cpp +++ b/src/lib/other/useragentmanager.cpp @@ -20,7 +20,7 @@ #include "qztools.h" #include "settings.h" -#include // QTWEBKIT_VERSION_CHECK macro +#include // QTWEBKIT_VERSION_CHECK macro UserAgentManager::UserAgentManager(QObject* parent) : QObject(parent) diff --git a/src/lib/plugins/clicktoflash.cpp b/src/lib/plugins/clicktoflash.cpp index 9b957a7d9..2a3b5db0c 100644 --- a/src/lib/plugins/clicktoflash.cpp +++ b/src/lib/plugins/clicktoflash.cpp @@ -51,8 +51,10 @@ #include #include #include -#include +#include #include + +#if QTWEBENGINE_DISABLED #include QUrl ClickToFlash::acceptedUrl; @@ -152,9 +154,9 @@ void ClickToFlash::findElement() } QWidget* parent = parentWidget(); - QWebView* view = 0; + QWebEngineView* view = 0; while (parent) { - if (QWebView* aView = qobject_cast(parent)) { + if (QWebEngineView* aView = qobject_cast(parent)) { view = aView; break; } @@ -165,7 +167,7 @@ void ClickToFlash::findElement() } QPoint objectPos = view->mapFromGlobal(m_toolButton->mapToGlobal(m_toolButton->pos())); - QWebFrame* objectFrame = view->page()->frameAt(objectPos); + QWebEngineFrame* objectFrame = view->page()->frameAt(objectPos); QWebHitTestResult hitResult; QWebElement hitElement; @@ -183,12 +185,12 @@ void ClickToFlash::findElement() // HitTestResult failed, trying to find element by src // attribute in elements at all frames on page (less accurate) - QList frames; + QList frames; frames.append(objectFrame); frames.append(view->page()->mainFrame()); while (!frames.isEmpty()) { - QWebFrame* frame = frames.takeFirst(); + QWebEngineFrame* frame = frames.takeFirst(); if (!frame) { continue; } @@ -320,3 +322,5 @@ void ClickToFlash::showInfo() QzTools::centerWidgetToParent(widg, m_page->view()); widg->show(); } + +#endif diff --git a/src/lib/plugins/clicktoflash.h b/src/lib/plugins/clicktoflash.h index ea5a7b79d..93af13ba9 100644 --- a/src/lib/plugins/clicktoflash.h +++ b/src/lib/plugins/clicktoflash.h @@ -42,6 +42,8 @@ #ifndef CLICKTOFLASH_H #define CLICKTOFLASH_H +#if QTWEBENGINE_DISABLED + #include "qzcommon.h" // Qt Includes @@ -98,5 +100,7 @@ private: WebPage* m_page; }; +#endif + #endif // CLICKTOFLASH_H diff --git a/src/lib/plugins/plugininterface.h b/src/lib/plugins/plugininterface.h index 4e3beb85f..3aeb76433 100644 --- a/src/lib/plugins/plugininterface.h +++ b/src/lib/plugins/plugininterface.h @@ -21,7 +21,11 @@ #include #include #include +#if QTWEBENGINE_DISABLED #include +#endif + +#include #include "qzcommon.h" diff --git a/src/lib/plugins/plugins.cpp b/src/lib/plugins/plugins.cpp index 7aaaa6345..f32ac5e87 100644 --- a/src/lib/plugins/plugins.cpp +++ b/src/lib/plugins/plugins.cpp @@ -29,7 +29,7 @@ Plugins::Plugins(QObject* parent) : QObject(parent) , m_pluginsLoaded(false) - , m_speedDial(new SpeedDial(this)) + //, m_speedDial(new SpeedDial(this)) { loadSettings(); } diff --git a/src/lib/plugins/speeddial.cpp b/src/lib/plugins/speeddial.cpp index 9dd9035f8..e0cbaac99 100644 --- a/src/lib/plugins/speeddial.cpp +++ b/src/lib/plugins/speeddial.cpp @@ -22,11 +22,13 @@ #include "qztools.h" #include "autosaver.h" +#if QTWEBENGINE_DISABLED + #include #include #include -#include -#include +#include +#include #include #define ENSURE_LOADED if (!m_loaded) loadSettings(); @@ -124,7 +126,7 @@ QUrl SpeedDial::urlForShortcut(int key) return QUrl::fromEncoded(m_webPages.at(key).url.toUtf8()); } -void SpeedDial::addWebFrame(QWebFrame* frame) +void SpeedDial::addWebFrame(QWebEngineFrame* frame) { if (!m_webFrames.contains(frame)) { m_webFrames.append(frame); @@ -146,8 +148,8 @@ void SpeedDial::addPage(const QUrl &url, const QString &title) m_webPages.append(page); m_regenerateScript = true; - foreach (QWebFrame* frame, cleanFrames()) { - frame->page()->triggerAction(QWebPage::Reload); + foreach (QWebEngineFrame* frame, cleanFrames()) { + frame->page()->triggerAction(QWebEnginePage::Reload); } emit pagesChanged(); @@ -165,8 +167,8 @@ void SpeedDial::removePage(const Page &page) m_webPages.removeAll(page); m_regenerateScript = true; - foreach (QWebFrame* frame, cleanFrames()) { - frame->page()->triggerAction(QWebPage::Reload); + foreach (QWebEngineFrame* frame, cleanFrames()) { + frame->page()->triggerAction(QWebEnginePage::Reload); } emit pagesChanged(); @@ -361,7 +363,7 @@ void SpeedDial::thumbnailCreated(const QPixmap &pixmap) m_regenerateScript = true; cleanFrames(); - foreach (QWebFrame* frame, cleanFrames()) { + foreach (QWebEngineFrame* frame, cleanFrames()) { frame->evaluateJavaScript(QString("setImageToUrl('%1', '%2');").arg(escapeUrl(url), escapeTitle(fileName))); if (loadTitle) { frame->evaluateJavaScript(QString("setTitleToUrl('%1', '%2');").arg(escapeUrl(url), escapeTitle(title))); @@ -413,3 +415,5 @@ QString SpeedDial::generateAllPages() return allPages; } + +#endif diff --git a/src/lib/plugins/speeddial.h b/src/lib/plugins/speeddial.h index e641cb43e..5ff258c14 100644 --- a/src/lib/plugins/speeddial.h +++ b/src/lib/plugins/speeddial.h @@ -18,13 +18,15 @@ #ifndef SPEEDDIAL_H #define SPEEDDIAL_H +#if QTWEBENGINE_DISABLED + #include #include #include "qzcommon.h" class QUrl; -class QWebFrame; +class QWebEngineFrame; class QPixmap; class AutoSaver; @@ -52,7 +54,7 @@ public: Page pageForUrl(const QUrl &url); QUrl urlForShortcut(int key); - void addWebFrame(QWebFrame* frame); + void addWebFrame(QWebEngineFrame* frame); void addPage(const QUrl &url, const QString &title); void removePage(const Page &page); @@ -88,7 +90,7 @@ private: QString escapeTitle(QString string) const; QString escapeUrl(QString url) const; - QList cleanFrames(); + QList cleanFrames(); QString generateAllPages(); QString m_initialScript; @@ -107,4 +109,6 @@ private: bool m_regenerateScript; }; +#endif + #endif // SPEEDDIAL_H diff --git a/src/lib/popupwindow/popuplocationbar.cpp b/src/lib/popupwindow/popuplocationbar.cpp index 5a4286c90..c16db2853 100644 --- a/src/lib/popupwindow/popuplocationbar.cpp +++ b/src/lib/popupwindow/popuplocationbar.cpp @@ -55,7 +55,6 @@ PopupLocationBar::PopupLocationBar(QWidget* parent) m_siteIcon->setFixedSize(26, 26); m_bookmarkIcon = new BookmarksIcon(this); - m_rssIcon = new RssIcon(this); m_autofillIcon = new AutoFillIcon(this); m_loadingAnimation = new QLabel(this); @@ -69,7 +68,6 @@ PopupLocationBar::PopupLocationBar(QWidget* parent) addWidget(m_siteIcon, LineEdit::LeftSide); addWidget(m_autofillIcon, LineEdit::RightSide); addWidget(m_bookmarkIcon, LineEdit::RightSide); - addWidget(m_rssIcon, LineEdit::RightSide); addWidget(m_loadingAnimation, LineEdit::RightSide); addWidget(rightSpacer, LineEdit::RightSide); setLeftMargin(20); @@ -78,7 +76,6 @@ PopupLocationBar::PopupLocationBar(QWidget* parent) setReadOnly(true); // Hide icons by default - m_rssIcon->hide(); m_autofillIcon->hide(); } @@ -87,7 +84,6 @@ void PopupLocationBar::setView(PopupWebView* view) m_view = view; m_bookmarkIcon->setWebView(m_view); - m_rssIcon->setWebView(m_view); m_autofillIcon->setWebView(m_view); connect(m_view, SIGNAL(rssChanged(bool)), this, SLOT(showRSSIcon(bool))); @@ -133,7 +129,5 @@ void PopupLocationBar::showSiteIcon() void PopupLocationBar::showRSSIcon(bool state) { - m_rssIcon->setVisible(state); - updateTextMargins(); } diff --git a/src/lib/popupwindow/popupstatusbarmessage.cpp b/src/lib/popupwindow/popupstatusbarmessage.cpp index 214197ca6..1f1d28057 100644 --- a/src/lib/popupwindow/popupstatusbarmessage.cpp +++ b/src/lib/popupwindow/popupstatusbarmessage.cpp @@ -24,7 +24,6 @@ #include #include -#include PopupStatusBarMessage::PopupStatusBarMessage(PopupWindow* window) : m_popupWindow(window) @@ -43,18 +42,22 @@ void PopupStatusBarMessage::showMessage(const QString &message) else { #endif PopupWebView* view = m_popupWindow->webView(); - QWebFrame* mainFrame = view->page()->mainFrame(); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* mainFrame = view->page()->mainFrame(); +#endif int horizontalScrollSize = 0; int verticalScrollSize = 0; const int scrollbarSize = m_popupWindow->style()->pixelMetric(QStyle::PM_ScrollBarExtent); +#if QTWEBENGINE_DISABLED if (mainFrame->scrollBarMaximum(Qt::Horizontal)) { horizontalScrollSize = scrollbarSize; } if (mainFrame->scrollBarMaximum(Qt::Vertical)) { verticalScrollSize = scrollbarSize; } +#endif m_statusBarText->setText(message); m_statusBarText->setMaximumWidth(view->width() - verticalScrollSize); diff --git a/src/lib/popupwindow/popupwebpage.cpp b/src/lib/popupwindow/popupwebpage.cpp index 81a0ccb01..b3d579dcb 100644 --- a/src/lib/popupwindow/popupwebpage.cpp +++ b/src/lib/popupwindow/popupwebpage.cpp @@ -31,7 +31,7 @@ // // Got an idea how to determine it from kWebKitPart. -PopupWebPage::PopupWebPage(QWebPage::WebWindowType type, BrowserWindow* window) +PopupWebPage::PopupWebPage(QWebEnginePage::WebWindowType type, BrowserWindow* window) : WebPage() , m_window(window) , m_type(type) @@ -43,9 +43,11 @@ PopupWebPage::PopupWebPage(QWebPage::WebWindowType type, BrowserWindow* window) , m_progress(0) { connect(this, SIGNAL(geometryChangeRequested(QRect)), this, SLOT(slotGeometryChangeRequested(QRect))); +#if QTWEBENGINE_DISABLED connect(this, SIGNAL(menuBarVisibilityChangeRequested(bool)), this, SLOT(slotMenuBarVisibilityChangeRequested(bool))); connect(this, SIGNAL(toolBarVisibilityChangeRequested(bool)), this, SLOT(slotToolBarVisibilityChangeRequested(bool))); connect(this, SIGNAL(statusBarVisibilityChangeRequested(bool)), this, SLOT(slotStatusBarVisibilityChangeRequested(bool))); +#endif connect(this, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted())); connect(this, SIGNAL(loadProgress(int)), this, SLOT(slotLoadProgress(int))); diff --git a/src/lib/popupwindow/popupwebpage.h b/src/lib/popupwindow/popupwebpage.h index 1e3957c83..9d982c036 100644 --- a/src/lib/popupwindow/popupwebpage.h +++ b/src/lib/popupwindow/popupwebpage.h @@ -45,7 +45,7 @@ private slots: private: BrowserWindow* m_window; - QWebPage::WebWindowType m_type; + QWebEnginePage::WebWindowType m_type; bool m_createNewWindow; bool m_menuBarVisible; diff --git a/src/lib/popupwindow/popupwebview.cpp b/src/lib/popupwindow/popupwebview.cpp index 356179247..f7401586d 100644 --- a/src/lib/popupwindow/popupwebview.cpp +++ b/src/lib/popupwindow/popupwebview.cpp @@ -25,7 +25,6 @@ #include "enhancedmenu.h" #include "loadrequest.h" -#include #include PopupWebView::PopupWebView(QWidget* parent) @@ -94,13 +93,16 @@ void PopupWebView::closeView() void PopupWebView::inspectElement() { - triggerPageAction(QWebPage::InspectElement); +#if QTWEBENGINE_DISABLED + triggerPageAction(QWebEnginePage::InspectElement); +#endif } void PopupWebView::contextMenuEvent(QContextMenuEvent* event) { m_menu->clear(); +#if QTWEBENGINE_DISABLED const QWebHitTestResult hitTest = page()->mainFrame()->hitTestContent(event->pos()); createContextMenu(m_menu, hitTest, event->pos()); @@ -115,6 +117,7 @@ void PopupWebView::contextMenuEvent(QContextMenuEvent* event) m_menu->popup(p); return; } +#endif WebView::contextMenuEvent(event); } diff --git a/src/lib/popupwindow/popupwindow.cpp b/src/lib/popupwindow/popupwindow.cpp index 5b7a3b1bd..034e91c19 100644 --- a/src/lib/popupwindow/popupwindow.cpp +++ b/src/lib/popupwindow/popupwindow.cpp @@ -28,7 +28,6 @@ #include #include -#include #include #include @@ -67,14 +66,14 @@ PopupWindow::PopupWindow(PopupWebView* view) m_menuBar->addMenu(menuFile); m_menuEdit = new QMenu(tr("Edit")); - m_menuEdit->addAction(m_view->pageAction(QWebPage::Undo)); - m_menuEdit->addAction(m_view->pageAction(QWebPage::Redo)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::Undo)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::Redo)); m_menuEdit->addSeparator(); - m_menuEdit->addAction(m_view->pageAction(QWebPage::Cut)); - m_menuEdit->addAction(m_view->pageAction(QWebPage::Copy)); - m_menuEdit->addAction(m_view->pageAction(QWebPage::Paste)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::Cut)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::Copy)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::Paste)); m_menuEdit->addSeparator(); - m_menuEdit->addAction(m_view->pageAction(QWebPage::SelectAll)); + m_menuEdit->addAction(m_view->pageAction(QWebEnginePage::SelectAll)); m_menuEdit->addAction(QIcon::fromTheme("edit-find"), tr("Find"), this, SLOT(searchOnPage()))->setShortcut(QKeySequence("Ctrl+F")); m_menuBar->addMenu(m_menuEdit); @@ -125,9 +124,11 @@ PopupWindow::PopupWindow(PopupWebView* view) titleChanged(); QUrl urlToShow = m_view->url(); +#if QTWEBENGINE_DISABLED if (urlToShow.isEmpty()) { urlToShow = m_view->page()->mainFrame()->requestedUrl(); } +#endif m_locationBar->showUrl(urlToShow); @@ -212,8 +213,10 @@ void PopupWindow::closeEvent(QCloseEvent* event) void PopupWindow::savePageScreen() { +#if QTWEBENGINE_DISABLED PageScreen* pageScreen = new PageScreen(m_view, this); pageScreen->show(); +#endif } void PopupWindow::searchOnPage() diff --git a/src/lib/preferences/jsoptions.cpp b/src/lib/preferences/jsoptions.cpp index 00b5cb4a1..6d5817e8a 100644 --- a/src/lib/preferences/jsoptions.cpp +++ b/src/lib/preferences/jsoptions.cpp @@ -21,7 +21,7 @@ #include "mainapplication.h" #include "settings.h" -#include // QTWEBKIT_VERSION_CHECK macro +#include // QTWEBKIT_VERSION_CHECK macro #include JsOptions::JsOptions(QWidget* parent) diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp index 2abaf2b17..f72fbe04e 100644 --- a/src/lib/preferences/preferences.cpp +++ b/src/lib/preferences/preferences.cpp @@ -364,18 +364,19 @@ Preferences::Preferences(BrowserWindow* window, QWidget* parent) //FONTS settings.beginGroup("Browser-Fonts"); - QWebSettings* webSettings = QWebSettings::globalSettings(); - ui->fontStandard->setCurrentFont(QFont(settings.value("StandardFont", webSettings->fontFamily(QWebSettings::StandardFont)).toString())); - ui->fontCursive->setCurrentFont(QFont(settings.value("CursiveFont", webSettings->fontFamily(QWebSettings::CursiveFont)).toString())); - ui->fontFantasy->setCurrentFont(QFont(settings.value("FantasyFont", webSettings->fontFamily(QWebSettings::FantasyFont)).toString())); - ui->fontFixed->setCurrentFont(QFont(settings.value("FixedFont", webSettings->fontFamily(QWebSettings::FixedFont)).toString())); - ui->fontSansSerif->setCurrentFont(QFont(settings.value("SansSerifFont", webSettings->fontFamily(QWebSettings::SansSerifFont)).toString())); - ui->fontSerif->setCurrentFont(QFont(settings.value("SerifFont", webSettings->fontFamily(QWebSettings::SerifFont)).toString())); - - ui->sizeDefault->setValue(settings.value("DefaultFontSize", webSettings->fontSize(QWebSettings::DefaultFontSize)).toInt()); - ui->sizeFixed->setValue(settings.value("FixedFontSize", webSettings->fontSize(QWebSettings::DefaultFixedFontSize)).toInt()); - ui->sizeMinimum->setValue(settings.value("MinimumFontSize", webSettings->fontSize(QWebSettings::MinimumFontSize)).toInt()); - ui->sizeMinimumLogical->setValue(settings.value("MinimumLogicalFontSize", webSettings->fontSize(QWebSettings::MinimumLogicalFontSize)).toInt()); +#if QTWEBENGINE_DISABLED + QWebEngineSettings* webSettings = QWebEngineSettings::globalSettings(); + ui->fontStandard->setCurrentFont(QFont(settings.value("StandardFont", webSettings->fontFamily(QWebEngineSettings::StandardFont)).toString())); + ui->fontCursive->setCurrentFont(QFont(settings.value("CursiveFont", webSettings->fontFamily(QWebEngineSettings::CursiveFont)).toString())); + ui->fontFantasy->setCurrentFont(QFont(settings.value("FantasyFont", webSettings->fontFamily(QWebEngineSettings::FantasyFont)).toString())); + ui->fontFixed->setCurrentFont(QFont(settings.value("FixedFont", webSettings->fontFamily(QWebEngineSettings::FixedFont)).toString())); + ui->fontSansSerif->setCurrentFont(QFont(settings.value("SansSerifFont", webSettings->fontFamily(QWebEngineSettings::SansSerifFont)).toString())); + ui->fontSerif->setCurrentFont(QFont(settings.value("SerifFont", webSettings->fontFamily(QWebEngineSettings::SerifFont)).toString())); + ui->sizeDefault->setValue(settings.value("DefaultFontSize", webSettings->fontSize(QWebEngineSettings::DefaultFontSize)).toInt()); + ui->sizeFixed->setValue(settings.value("FixedFontSize", webSettings->fontSize(QWebEngineSettings::DefaultFixedFontSize)).toInt()); + ui->sizeMinimum->setValue(settings.value("MinimumFontSize", webSettings->fontSize(QWebEngineSettings::MinimumFontSize)).toInt()); + ui->sizeMinimumLogical->setValue(settings.value("MinimumLogicalFontSize", webSettings->fontSize(QWebEngineSettings::MinimumLogicalFontSize)).toInt()); +#endif settings.endGroup(); //KEYBOARD SHORTCUTS @@ -780,7 +781,9 @@ void Preferences::changeCachePathClicked() void Preferences::reloadPacFileClicked() { +#if QTWEBENGINE_DISABLED mApp->networkManager()->proxyFactory()->pacManager()->downloadPacFile(); +#endif } void Preferences::showPassManager(bool state) @@ -1110,7 +1113,9 @@ void Preferences::saveSettings() mApp->history()->loadSettings(); mApp->reloadSettings(); mApp->plugins()->c2f_saveSettings(); +#if QTWEBENGINE_DISABLED mApp->networkManager()->loadSettings(); +#endif mApp->desktopNotifications()->loadSettings(); mApp->autoFill()->loadSettings(); } diff --git a/src/lib/preferences/sslmanager.cpp b/src/lib/preferences/sslmanager.cpp index 17638ba93..a1afb77d6 100644 --- a/src/lib/preferences/sslmanager.cpp +++ b/src/lib/preferences/sslmanager.cpp @@ -56,8 +56,10 @@ SSLManager::SSLManager(QWidget* parent) connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(close())); // Settings +#if QTWEBENGINE_DISABLED ui->disableWeakCiphers->setChecked(mApp->networkManager()->isDisablingWeakCiphers()); ui->ignoreAll->setChecked(mApp->networkManager()->isIgnoringAllWarnings()); +#endif } void SSLManager::addPath() @@ -98,6 +100,7 @@ void SSLManager::refreshCAList() void SSLManager::refreshLocalList() { +#if QTWEBENGINE_DISABLED ui->localList->setUpdatesEnabled(false); ui->localList->clear(); m_localCerts = mApp->networkManager()->getLocalCertificates(); @@ -111,13 +114,16 @@ void SSLManager::refreshLocalList() ui->localList->setCurrentRow(0); ui->localList->setUpdatesEnabled(true); +#endif } void SSLManager::refreshPaths() { +#if QTWEBENGINE_DISABLED foreach (const QString &path, mApp->networkManager()->certificatePaths()) { ui->pathList->addItem(path); } +#endif } void SSLManager::showCaCertInfo() @@ -133,6 +139,7 @@ void SSLManager::showCaCertInfo() void SSLManager::addLocalCertificate() { +#if QTWEBENGINE_DISABLED const QString path = QzTools::getOpenFileName("SSLManager-AddLocalCert", this, tr("Import certificate..."), QDir::homePath(), "*.crt"); if (path.isEmpty()) { @@ -147,6 +154,7 @@ void SSLManager::addLocalCertificate() mApp->networkManager()->addLocalCertificate(list.at(0)); refreshLocalList(); +#endif } void SSLManager::showLocalCertInfo() @@ -179,6 +187,7 @@ void SSLManager::showCertificateInfo(const QSslCertificate &cert) void SSLManager::deleteCertificate() { +#if QTWEBENGINE_DISABLED QListWidgetItem* item = ui->localList->currentItem(); if (!item) { return; @@ -188,20 +197,26 @@ void SSLManager::deleteCertificate() m_localCerts.removeOne(cert); mApp->networkManager()->removeLocalCertificate(cert); refreshLocalList(); +#endif } void SSLManager::ignoreAll(bool state) { +#if QTWEBENGINE_DISABLED mApp->networkManager()->setIgnoreAllWarnings(state); +#endif } void SSLManager::disableWeakCiphers(bool state) { +#if QTWEBENGINE_DISABLED mApp->networkManager()->setDisableWeakCiphers(state); +#endif } void SSLManager::closeEvent(QCloseEvent* e) { +#if QTWEBENGINE_DISABLED QStringList paths; for (int i = 0; i < ui->pathList->count(); i++) { QListWidgetItem* item = ui->pathList->item(i); @@ -214,6 +229,7 @@ void SSLManager::closeEvent(QCloseEvent* e) mApp->networkManager()->setCertificatePaths(paths); mApp->networkManager()->saveSettings(); +#endif QWidget::closeEvent(e); } diff --git a/src/lib/rss/rssicon.cpp b/src/lib/rss/rssicon.cpp index 51239764c..72a0ddcc3 100644 --- a/src/lib/rss/rssicon.cpp +++ b/src/lib/rss/rssicon.cpp @@ -20,6 +20,8 @@ #include +#if QTWEBENGINE_DISABLED + RssIcon::RssIcon(QWidget* parent) : ClickableLabel(parent) , m_view(0) @@ -60,3 +62,5 @@ void RssIcon::mousePressEvent(QMouseEvent* ev) // Prevent propagating to LocationBar ev->accept(); } + +#endif diff --git a/src/lib/rss/rssicon.h b/src/lib/rss/rssicon.h index d08d45b26..5460b4aa8 100644 --- a/src/lib/rss/rssicon.h +++ b/src/lib/rss/rssicon.h @@ -21,6 +21,8 @@ #include "qzcommon.h" #include "clickablelabel.h" +#if QTWEBENGINE_DISABLED + class WebView; class QUPZILLA_EXPORT RssIcon : public ClickableLabel @@ -41,4 +43,6 @@ private: WebView* m_view; }; +#endif + #endif // RSSICON_H diff --git a/src/lib/rss/rssmanager.cpp b/src/lib/rss/rssmanager.cpp index 3bcb87694..3ed26fec8 100644 --- a/src/lib/rss/rssmanager.cpp +++ b/src/lib/rss/rssmanager.cpp @@ -32,12 +32,14 @@ #include #include #include -#include +#include #include #include #include #include +#if QTWEBENGINE_DISABLED + RSSManager::RSSManager(BrowserWindow* window, QWidget* parent) : QWidget(parent) , ui(new Ui::RSSManager) @@ -423,3 +425,5 @@ RSSManager::~RSSManager() { delete ui; } + +#endif diff --git a/src/lib/rss/rssmanager.h b/src/lib/rss/rssmanager.h index 3aedc53a4..42cc6c533 100644 --- a/src/lib/rss/rssmanager.h +++ b/src/lib/rss/rssmanager.h @@ -30,6 +30,8 @@ #include #include +#if QTWEBENGINE_DISABLED + namespace Ui { class RSSManager; @@ -77,4 +79,6 @@ private: QPointer m_window; }; +#endif + #endif // RSSMANAGER_H diff --git a/src/lib/rss/rssnotification.cpp b/src/lib/rss/rssnotification.cpp index 1fb8fde60..f33bb26f9 100644 --- a/src/lib/rss/rssnotification.cpp +++ b/src/lib/rss/rssnotification.cpp @@ -30,6 +30,8 @@ #include #include +#if QTWEBENGINE_DISABLED + RSSNotification::RSSNotification(const QString &title, const QUrl &url, WebView* parent) : AnimatedWidget(AnimatedWidget::Down, 300, parent) , ui(new Ui::RSSNotification) @@ -185,3 +187,5 @@ RSSNotification::~RSSNotification() { delete ui; } + +#endif diff --git a/src/lib/rss/rssnotification.h b/src/lib/rss/rssnotification.h index d4b3e259d..93984a56d 100644 --- a/src/lib/rss/rssnotification.h +++ b/src/lib/rss/rssnotification.h @@ -25,6 +25,8 @@ #include "qzcommon.h" #include "animatedwidget.h" +#if QTWEBENGINE_DISABLED + class WebView; namespace Ui @@ -65,4 +67,6 @@ private: QVector m_rssApps; }; +#endif + #endif // RSSNOTIFICATION_H diff --git a/src/lib/rss/rsswidget.cpp b/src/lib/rss/rsswidget.cpp index 84d8479e5..f16562ac6 100644 --- a/src/lib/rss/rsswidget.cpp +++ b/src/lib/rss/rsswidget.cpp @@ -23,9 +23,11 @@ #include "rssmanager.h" #include "rssnotification.h" +#if QTWEBENGINE_DISABLED + #include #include -#include +#include #include RSSWidget::RSSWidget(WebView* view, QWidget* parent) @@ -35,7 +37,7 @@ RSSWidget::RSSWidget(WebView* view, QWidget* parent) { ui->setupUi(this); - QWebFrame* frame = m_view->page()->mainFrame(); + QWebEngineFrame* frame = m_view->page()->mainFrame(); QWebElementCollection links = frame->findAllElements("link[type=\"application/rss+xml\"]"); // Make sure RSS feeds fit into a window, in case there is a lot of feeds from one page @@ -133,3 +135,5 @@ RSSWidget::~RSSWidget() { delete ui; } + +#endif diff --git a/src/lib/rss/rsswidget.h b/src/lib/rss/rsswidget.h index 2b3ba6811..c782ac1df 100644 --- a/src/lib/rss/rsswidget.h +++ b/src/lib/rss/rsswidget.h @@ -18,6 +18,8 @@ #ifndef RSSWIDGET_H #define RSSWIDGET_H +#if QTWEBENGINE_DISABLED + #include #include "qzcommon.h" @@ -47,4 +49,6 @@ private: WebView* m_view; }; +#endif + #endif // RSSWIDGET_H diff --git a/src/lib/tabwidget/tabicon.cpp b/src/lib/tabwidget/tabicon.cpp index 9345c8bfd..26c880c99 100644 --- a/src/lib/tabwidget/tabicon.cpp +++ b/src/lib/tabwidget/tabicon.cpp @@ -50,7 +50,9 @@ void TabIcon::setWebTab(WebTab* tab) connect(m_tab->webView(), SIGNAL(loadStarted()), this, SLOT(showLoadingAnimation())); connect(m_tab->webView(), SIGNAL(loadFinished(bool)), this, SLOT(hideLoadingAnimation())); +#if QTWEBENGINE_DISABLED connect(m_tab->webView(), SIGNAL(iconChanged()), this, SLOT(showIcon())); +#endif showIcon(); } diff --git a/src/lib/tabwidget/tabwidget.cpp b/src/lib/tabwidget/tabwidget.cpp index efc5c7350..927437b86 100644 --- a/src/lib/tabwidget/tabwidget.cpp +++ b/src/lib/tabwidget/tabwidget.cpp @@ -37,8 +37,7 @@ #include #include #include -#include -#include +#include #include AddTabButton::AddTabButton(TabWidget* tabWidget, TabBar* tabBar) @@ -388,9 +387,10 @@ int TabWidget::addView(const LoadRequest &req, const QString &title, const Qz::N m_window->locationBar()->setFocus(); } +#if QTWEBENGINE_DISABLED if (openFlags & Qz::NT_NotSelectedTab) { WebTab* currentWebTab = weTab(); - // Workarounding invalid QWebPage::viewportSize() until QWebView is shown + // Workarounding invalid QWebEnginePage::viewportSize() until QWebEngineView is shown // Fixes invalid scrolling to anchor(#) links if (currentWebTab && currentWebTab->webView()) { TabbedWebView* currentView = currentWebTab->webView(); @@ -398,6 +398,7 @@ int TabWidget::addView(const LoadRequest &req, const QString &title, const Qz::N webTab->webView()->page()->setViewportSize(currentView->page()->viewportSize()); } } +#endif // Make sure user notice opening new background tabs if (!(openFlags & Qz::NT_SelectedTab)) { diff --git a/src/lib/tools/closedtabsmanager.cpp b/src/lib/tools/closedtabsmanager.cpp index 7ffc8f885..5662c8145 100644 --- a/src/lib/tools/closedtabsmanager.cpp +++ b/src/lib/tools/closedtabsmanager.cpp @@ -20,8 +20,8 @@ #include "qztools.h" #include "mainapplication.h" -#include -#include +#include +#include ClosedTabsManager::ClosedTabsManager() { diff --git a/src/lib/tools/html5permissions/html5permissionsmanager.cpp b/src/lib/tools/html5permissions/html5permissionsmanager.cpp index fa991c6d1..6f369f6c0 100644 --- a/src/lib/tools/html5permissions/html5permissionsmanager.cpp +++ b/src/lib/tools/html5permissions/html5permissionsmanager.cpp @@ -20,7 +20,6 @@ #include "settings.h" #include "webview.h" -#include HTML5PermissionsManager::HTML5PermissionsManager(QObject* parent) : QObject(parent) @@ -28,8 +27,8 @@ HTML5PermissionsManager::HTML5PermissionsManager(QObject* parent) loadSettings(); } -#if QTWEBKIT_FROM_2_2 -void HTML5PermissionsManager::requestPermissions(WebPage* page, QWebFrame* frame, const QWebPage::Feature &feature) +#if QTWEBENGINE_DISABLED +void HTML5PermissionsManager::requestPermissions(WebPage* page, QWebEngineFrame* frame, const QWebEnginePage::Feature &feature) { if (!frame || !page) { return; @@ -39,14 +38,14 @@ void HTML5PermissionsManager::requestPermissions(WebPage* page, QWebFrame* frame WebView* view = qobject_cast(page->view()); switch (feature) { - case QWebPage::Notifications: + case QWebEnginePage::Notifications: if (m_notificationsGranted.contains(host)) { - page->setFeaturePermission(frame, feature, QWebPage::PermissionGrantedByUser); + page->setFeaturePermission(frame, feature, QWebEnginePage::PermissionGrantedByUser); return; } if (m_notificationsDenied.contains(host)) { - page->setFeaturePermission(frame, feature, QWebPage::PermissionDeniedByUser); + page->setFeaturePermission(frame, feature, QWebEnginePage::PermissionDeniedByUser); return; } @@ -57,14 +56,14 @@ void HTML5PermissionsManager::requestPermissions(WebPage* page, QWebFrame* frame break; - case QWebPage::Geolocation: + case QWebEnginePage::Geolocation: if (m_geolocationGranted.contains(host)) { - page->setFeaturePermission(frame, feature, QWebPage::PermissionGrantedByUser); + page->setFeaturePermission(frame, feature, QWebEnginePage::PermissionGrantedByUser); return; } if (m_geolocationDenied.contains(host)) { - page->setFeaturePermission(frame, feature, QWebPage::PermissionDeniedByUser); + page->setFeaturePermission(frame, feature, QWebEnginePage::PermissionDeniedByUser); return; } @@ -81,16 +80,16 @@ void HTML5PermissionsManager::requestPermissions(WebPage* page, QWebFrame* frame } } -void HTML5PermissionsManager::rememberPermissions(const QString &host, const QWebPage::Feature &feature, - const QWebPage::PermissionPolicy &policy) +void HTML5PermissionsManager::rememberPermissions(const QString &host, const QWebEnginePage::Feature &feature, + const QWebEnginePage::PermissionPolicy &policy) { if (host.isEmpty()) { return; } switch (feature) { - case QWebPage::Notifications: - if (policy == QWebPage::PermissionGrantedByUser) { + case QWebEnginePage::Notifications: + if (policy == QWebEnginePage::PermissionGrantedByUser) { m_notificationsGranted.append(host); } else { @@ -98,8 +97,8 @@ void HTML5PermissionsManager::rememberPermissions(const QString &host, const QWe } break; - case QWebPage::Geolocation: - if (policy == QWebPage::PermissionGrantedByUser) { + case QWebEnginePage::Geolocation: + if (policy == QWebEnginePage::PermissionGrantedByUser) { m_geolocationGranted.append(host); } else { @@ -141,3 +140,4 @@ void HTML5PermissionsManager::saveSettings() void HTML5PermissionsManager::showSettingsDialog() { } + diff --git a/src/lib/tools/html5permissions/html5permissionsmanager.h b/src/lib/tools/html5permissions/html5permissionsmanager.h index 074113dfd..1e14fe933 100644 --- a/src/lib/tools/html5permissions/html5permissionsmanager.h +++ b/src/lib/tools/html5permissions/html5permissionsmanager.h @@ -32,10 +32,10 @@ class QUPZILLA_EXPORT HTML5PermissionsManager : public QObject public: explicit HTML5PermissionsManager(QObject* parent); -#if QTWEBKIT_FROM_2_2 - void requestPermissions(WebPage* page, QWebFrame* frame, const QWebPage::Feature &feature); - void rememberPermissions(const QString &host, const QWebPage::Feature &feature, - const QWebPage::PermissionPolicy &policy); +#if QTWEBENGINE_DISABLED + void requestPermissions(WebPage* page, QWebEngineFrame* frame, const QWebEnginePage::Feature &feature); + void rememberPermissions(const QString &host, const QWebEnginePage::Feature &feature, + const QWebEnginePage::PermissionPolicy &policy); #endif void loadSettings(); diff --git a/src/lib/tools/html5permissions/html5permissionsnotification.cpp b/src/lib/tools/html5permissions/html5permissionsnotification.cpp index 4ada1fb26..a8954d4af 100644 --- a/src/lib/tools/html5permissions/html5permissionsnotification.cpp +++ b/src/lib/tools/html5permissions/html5permissionsnotification.cpp @@ -21,10 +21,11 @@ #include "mainapplication.h" #include "iconprovider.h" -#include +#if QTWEBENGINE_DISABLED +#include #ifdef USE_QTWEBKIT_2_2 -HTML5PermissionsNotification::HTML5PermissionsNotification(const QString &host, QWebFrame* frame, const QWebPage::Feature &feature) +HTML5PermissionsNotification::HTML5PermissionsNotification(const QString &host, QWebEngineFrame* frame, const QWebEnginePage::Feature &feature) : AnimatedWidget(AnimatedWidget::Down, 300, 0) , ui(new Ui::HTML5PermissionsNotification) , m_host(host) @@ -39,11 +40,11 @@ HTML5PermissionsNotification::HTML5PermissionsNotification(const QString &host, QString message; QString site = m_host.isEmpty() ? tr("this site") : QString("%1").arg(m_host); - if (feature == QWebPage::Notifications) { + if (feature == QWebEnginePage::Notifications) { ui->iconLabel->setPixmap(QPixmap(":icons/other/notification.png")); message = tr("Allow %1 to show desktop notifications?").arg(site); } - else if (feature == QWebPage::Geolocation) { + else if (feature == QWebEnginePage::Geolocation) { ui->iconLabel->setPixmap(QPixmap(":icons/other/geolocation.png")); message = tr("Allow %1 to locate your position?").arg(site); } @@ -63,11 +64,11 @@ void HTML5PermissionsNotification::grantPermissions() return; } - QWebPage* page = m_frame->page(); - page->setFeaturePermission(m_frame, m_feature, QWebPage::PermissionGrantedByUser); + QWebEnginePage* page = m_frame->page(); + page->setFeaturePermission(m_frame, m_feature, QWebEnginePage::PermissionGrantedByUser); if (ui->remember->isChecked()) { - mApp->html5PermissionsManager()->rememberPermissions(m_host, m_feature, QWebPage::PermissionGrantedByUser); + mApp->html5PermissionsManager()->rememberPermissions(m_host, m_feature, QWebEnginePage::PermissionGrantedByUser); } hide(); @@ -79,11 +80,11 @@ void HTML5PermissionsNotification::denyPermissions() return; } - QWebPage* page = m_frame->page(); - page->setFeaturePermission(m_frame, m_feature, QWebPage::PermissionDeniedByUser); + QWebEnginePage* page = m_frame->page(); + page->setFeaturePermission(m_frame, m_feature, QWebEnginePage::PermissionDeniedByUser); if (ui->remember->isChecked()) { - mApp->html5PermissionsManager()->rememberPermissions(m_host, m_feature, QWebPage::PermissionDeniedByUser); + mApp->html5PermissionsManager()->rememberPermissions(m_host, m_feature, QWebEnginePage::PermissionDeniedByUser); } hide(); @@ -94,3 +95,5 @@ HTML5PermissionsNotification::~HTML5PermissionsNotification() delete ui; } #endif // USE_QTWEBKIT_2_2 + +#endif diff --git a/src/lib/tools/html5permissions/html5permissionsnotification.h b/src/lib/tools/html5permissions/html5permissionsnotification.h index 2a04ddcbf..7cd4944d5 100644 --- a/src/lib/tools/html5permissions/html5permissionsnotification.h +++ b/src/lib/tools/html5permissions/html5permissionsnotification.h @@ -34,7 +34,7 @@ class HTML5PermissionsNotification : public AnimatedWidget #ifdef USE_QTWEBKIT_2_2 public: - explicit HTML5PermissionsNotification(const QString &host, QWebFrame* frame, const QWebPage::Feature &feature); + explicit HTML5PermissionsNotification(const QString &host, QWebEngineFrame* frame, const QWebEnginePage::Feature &feature); ~HTML5PermissionsNotification(); private slots: @@ -45,8 +45,8 @@ private: Ui::HTML5PermissionsNotification* ui; QString m_host; - QWebFrame* m_frame; - QWebPage::Feature m_feature; + QWebEngineFrame* m_frame; + QWebEnginePage::Feature m_feature; #endif }; diff --git a/src/lib/tools/pagethumbnailer.cpp b/src/lib/tools/pagethumbnailer.cpp index 4beda479e..d7573c45e 100644 --- a/src/lib/tools/pagethumbnailer.cpp +++ b/src/lib/tools/pagethumbnailer.cpp @@ -19,8 +19,10 @@ #include "mainapplication.h" #include "networkmanagerproxy.h" -#include -#include +#if QTWEBENGINE_DISABLED + +#include +#include #include CleanPluginFactory::CleanPluginFactory(QObject* parent) @@ -45,7 +47,7 @@ QObject* CleanPluginFactory::create(const QString &mimeType, const QUrl &url, co PageThumbnailer::PageThumbnailer(QObject* parent) : QObject(parent) - , m_page(new QWebPage(this)) + , m_page(new QWebEnginePage(this)) , m_size(QSize(450, 253)) , m_loadTitle(false) { @@ -129,7 +131,7 @@ void PageThumbnailer::createThumbnail(bool status) QPainter painter(&pixmap); painter.scale(scalingFactor, scalingFactor); - m_page->mainFrame()->render(&painter, QWebFrame::ContentsLayer); + m_page->mainFrame()->render(&painter, QWebEngineFrame::ContentsLayer); painter.end(); emit thumbnailCreated(pixmap.scaled(m_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); @@ -139,3 +141,5 @@ PageThumbnailer::~PageThumbnailer() { m_page->deleteLater(); } + +#endif diff --git a/src/lib/tools/pagethumbnailer.h b/src/lib/tools/pagethumbnailer.h index c5417059c..d48c11a39 100644 --- a/src/lib/tools/pagethumbnailer.h +++ b/src/lib/tools/pagethumbnailer.h @@ -18,6 +18,8 @@ #ifndef PAGETHUMBNAILER_H #define PAGETHUMBNAILER_H +#if QTWEBENGINE_DISABLED + #include #include #include @@ -25,7 +27,7 @@ #include "qzcommon.h" -class QWebPage; +class QWebEnginePage; class QPixmap; class QUPZILLA_EXPORT CleanPluginFactory : public QWebPluginFactory @@ -67,7 +69,7 @@ private slots: void createThumbnail(bool status); private: - QWebPage* m_page; + QWebEnginePage* m_page; QSize m_size; QUrl m_url; @@ -75,4 +77,6 @@ private: bool m_loadTitle; }; +#endif + #endif // PAGETHUMBNAILER_H diff --git a/src/lib/tools/qztools.cpp b/src/lib/tools/qztools.cpp index 88842f6d5..0cec6c392 100644 --- a/src/lib/tools/qztools.cpp +++ b/src/lib/tools/qztools.cpp @@ -39,7 +39,6 @@ #include #include #include -#include #if QT_VERSION >= 0x050000 #include @@ -216,9 +215,13 @@ QString QzTools::escapeSqlString(QString urlString) return urlString; } -QUrl QzTools::frameUrl(QWebFrame* frame) +QUrl QzTools::frameUrl(QWebEngineFrame* frame) { +#if QTWEBENGINE_DISABLED return frame->url().isEmpty() ? frame->baseUrl() : frame->url(); +#else + return QUrl(); +#endif } QString QzTools::ensureUniqueFilename(const QString &name, const QString &appendFormat) diff --git a/src/lib/tools/qztools.h b/src/lib/tools/qztools.h index 1d4bd282f..ed3d7c854 100644 --- a/src/lib/tools/qztools.h +++ b/src/lib/tools/qztools.h @@ -24,7 +24,7 @@ class QSslCertificate; class QFontMetrics; -class QWebFrame; +class QWebEngineFrame; class QPixmap; class QIcon; class QWidget; @@ -49,7 +49,7 @@ public: static QString urlEncodeQueryString(const QUrl &url); static QString fromPunycode(const QString &str); static QString escapeSqlString(QString urlString); - static QUrl frameUrl(QWebFrame* frame); + static QUrl frameUrl(QWebEngineFrame *frame); static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QString("(%1)")); static QString getFileNameFromUrl(const QUrl &url); diff --git a/src/lib/webkit/javascript/externaljsobject.cpp b/src/lib/webkit/javascript/externaljsobject.cpp index adca53625..0000b5c56 100644 --- a/src/lib/webkit/javascript/externaljsobject.cpp +++ b/src/lib/webkit/javascript/externaljsobject.cpp @@ -40,7 +40,11 @@ int ExternalJsObject::IsSearchProviderInstalled(const QString &engineURL) QObject* ExternalJsObject::speedDial() const { +#if QTWEBENGINE_DISABLED return m_onSpeedDial ? mApp->plugins()->speedDial() : 0; +#else + return 0; +#endif } void ExternalJsObject::setOnSpeedDial(bool on) diff --git a/src/lib/webkit/loadrequest.cpp b/src/lib/webkit/loadrequest.cpp index d717f9f7f..19c9336af 100644 --- a/src/lib/webkit/loadrequest.cpp +++ b/src/lib/webkit/loadrequest.cpp @@ -17,7 +17,7 @@ * ============================================================ */ #include "loadrequest.h" -#include +#include LoadRequest::LoadRequest() : m_operation(GetOperation) diff --git a/src/lib/webkit/webinspector.cpp b/src/lib/webkit/webinspector.cpp index c62a41562..6514bc2f2 100644 --- a/src/lib/webkit/webinspector.cpp +++ b/src/lib/webkit/webinspector.cpp @@ -19,6 +19,8 @@ #include "toolbutton.h" #include "iconprovider.h" +#if QTWEBENGINE_DISABLED + #include WebInspector::WebInspector(QWidget* parent) @@ -68,3 +70,5 @@ void WebInspector::resizeEvent(QResizeEvent* event) QTimer::singleShot(0, this, SLOT(updateCloseButton())); } + +#endif diff --git a/src/lib/webkit/webinspector.h b/src/lib/webkit/webinspector.h index 301fc470e..9ef8eb63f 100644 --- a/src/lib/webkit/webinspector.h +++ b/src/lib/webkit/webinspector.h @@ -18,6 +18,7 @@ #ifndef WEBINSPECTORDOCKWIDGET_H #define WEBINSPECTORDOCKWIDGET_H +#if QTWEBENGINE_DISABLED #include #include "qzcommon.h" @@ -42,5 +43,6 @@ private: ToolButton* m_closeButton; bool m_blockHideEvent; }; +#endif #endif // WEBINSPECTORDOCKWIDGET_H diff --git a/src/lib/webkit/webpage.cpp b/src/lib/webkit/webpage.cpp index aac579d71..2fc02076b 100644 --- a/src/lib/webkit/webpage.cpp +++ b/src/lib/webkit/webpage.cpp @@ -50,16 +50,19 @@ #include #endif +#include #include +#include +#include +#include #include -#include +#include #include #include #include #include #include -#include -#include +#include QString WebPage::s_lastUploadLocation = QDir::homePath(); QUrl WebPage::s_lastUnsupportedUrl; @@ -67,7 +70,7 @@ QTime WebPage::s_lastUnsupportedUrlTime; QList WebPage::s_livingPages; WebPage::WebPage(QObject* parent) - : QWebPage(parent) + : QWebEnginePage(parent) , m_view(0) , m_fileWatcher(0) , m_runningLoop(0) @@ -76,7 +79,8 @@ WebPage::WebPage(QObject* parent) , m_secureStatus(false) , m_adjustingScheduled(false) { - m_javaScriptEnabled = QWebSettings::globalSettings()->testAttribute(QWebSettings::JavascriptEnabled); +#if QTWEBENGINE_DISABLED + m_javaScriptEnabled = QWebEngineSettings::globalSettings()->testAttribute(QWebEngineSettings::JavascriptEnabled); m_networkProxy = new NetworkManagerProxy(this); m_networkProxy->setPrimaryNetworkAccessManager(mApp->networkManager()); @@ -113,6 +117,8 @@ WebPage::WebPage(QObject* parent) #elif QTWEBKIT_FROM_2_2 connect(this, SIGNAL(applicationCacheQuotaExceeded(QWebSecurityOrigin*,quint64)), this, SLOT(appCacheQuotaExceeded(QWebSecurityOrigin*,quint64))); +#endif + #endif s_livingPages.append(this); @@ -129,14 +135,11 @@ WebPage::~WebPage() s_livingPages.removeOne(this); +#if QTWEBENGINE_DISABLED // Page's network manager will be deleted and then set to null // Fixes issue with network manager being used after deleted in destructor setNetworkAccessManager(0); -} - -QUrl WebPage::url() const -{ - return mainFrame()->url(); +#endif } void WebPage::setWebView(TabbedWebView* view) @@ -177,7 +180,11 @@ void WebPage::scheduleAdjustPage() bool WebPage::loadingError() const { +#if QTWEBENGINE_DISABLED return !mainFrame()->findFirstElement("span[id=\"qupzilla-error-page\"]").isNull(); +#else + return false; +#endif } void WebPage::addRejectedCerts(const QList &certs) @@ -206,11 +213,13 @@ bool WebPage::containsRejectedCerts(const QList &certs) return matches == certs.count(); } +#if QTWEBENGINE_DISABLED QWebElement WebPage::activeElement() const { QRect activeRect = inputMethodQuery(Qt::ImMicroFocus).toRect(); return mainFrame()->hitTestContent(activeRect.center()).element(); } +#endif bool WebPage::isRunningLoop() { @@ -224,10 +233,12 @@ bool WebPage::isLoading() const void WebPage::urlChanged(const QUrl &url) { +#if QTWEBENGINE_DISABLED // Make sure JavaScript is enabled for qupzilla pages regardless of user settings if (url.scheme() == QLatin1String("qupzilla")) { - settings()->setAttribute(QWebSettings::JavascriptEnabled, true); + settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true); } +#endif if (isLoading()) { m_adBlockedEntries.clear(); @@ -253,8 +264,8 @@ void WebPage::finished() if (m_adjustingScheduled) { m_adjustingScheduled = false; - mainFrame()->setZoomFactor(mainFrame()->zoomFactor() + 1); - mainFrame()->setZoomFactor(mainFrame()->zoomFactor() - 1); + setZoomFactor(zoomFactor() + 1); + setZoomFactor(zoomFactor() - 1); } // File scheme watcher @@ -284,11 +295,12 @@ void WebPage::finished() void WebPage::watchedFileChanged(const QString &file) { if (url().toLocalFile() == file) { - triggerAction(QWebPage::Reload); + triggerAction(QWebEnginePage::Reload); } } -void WebPage::printFrame(QWebFrame* frame) +#if QTWEBENGINE_DISABLED +void WebPage::printFrame(QWebEngineFrame* frame) { WebView* webView = qobject_cast(view()); if (!webView) { @@ -297,22 +309,25 @@ void WebPage::printFrame(QWebFrame* frame) webView->printPage(frame); } +#endif void WebPage::addJavaScriptObject() { +#if QTWEBENGINE_DISABLED // Make sure all other sites have JavaScript set by user preferences // (JavaScript is enabled in WebPage::urlChanged) if (url().scheme() != QLatin1String("qupzilla")) { - settings()->setAttribute(QWebSettings::JavascriptEnabled, m_javaScriptEnabled); + settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, m_javaScriptEnabled); } ExternalJsObject* jsObject = new ExternalJsObject(this); - mainFrame()->addToJavaScriptWindowObject("external", jsObject); + addToJavaScriptWindowObject("external", jsObject); if (url().toString() == QLatin1String("qupzilla:speeddial")) { jsObject->setOnSpeedDial(true); mApp->plugins()->speedDial()->addWebFrame(mainFrame()); } +#endif } void WebPage::handleUnsupportedContent(QNetworkReply* reply) @@ -327,6 +342,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply* reply) case QNetworkReply::NoError: if (reply->header(QNetworkRequest::ContentTypeHeader).isValid()) { QString requestUrl = reply->request().url().toString(QUrl::RemoveFragment | QUrl::RemoveQuery); +#if QTWEBENGINE_DISABLED if (requestUrl.endsWith(QLatin1String(".swf"))) { const QWebElement docElement = mainFrame()->documentElement(); const QWebElement object = docElement.findFirst(QString("object[src=\"%1\"]").arg(requestUrl)); @@ -340,6 +356,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply* reply) } DownloadManager* dManager = mApp->downloadManager(); dManager->handleUnsupportedContent(reply, this); +#endif return; } // Falling unsupported content with invalid ContentTypeHeader to be handled as UnknownProtocol @@ -352,7 +369,9 @@ void WebPage::handleUnsupportedContent(QNetworkReply* reply) if (url.scheme() == QLatin1String("ftp")) { DownloadManager* dManager = mApp->downloadManager(); +#if QTWEBENGINE_DISABLED dManager->handleUnsupportedContent(reply, this); +#endif return; } @@ -457,6 +476,7 @@ void WebPage::windowCloseRequested() webView->closeView(); } +#if QTWEBENGINE_DISABLED void WebPage::frameCreated(QWebFrame* frame) { connect(frame, SIGNAL(initialLayoutCompleted()), this, SLOT(frameInitialLayoutCompleted())); @@ -471,8 +491,144 @@ void WebPage::frameInitialLayoutCompleted() // Autofill m_passwordEntries = mApp->autoFill()->completeFrame(frame); } +#endif -void WebPage::dbQuotaExceeded(QWebFrame* frame) +void WebPage::authentication(const QUrl &requestUrl, QAuthenticator* auth) +{ + QDialog* dialog = new QDialog(); + dialog->setWindowTitle(tr("Authorisation required")); + + QFormLayout* formLa = new QFormLayout(dialog); + + QLabel* label = new QLabel(dialog); + QLabel* userLab = new QLabel(dialog); + QLabel* passLab = new QLabel(dialog); + userLab->setText(tr("Username: ")); + passLab->setText(tr("Password: ")); + + QLineEdit* user = new QLineEdit(dialog); + QLineEdit* pass = new QLineEdit(dialog); + pass->setEchoMode(QLineEdit::Password); + QCheckBox* save = new QCheckBox(dialog); + save->setText(tr("Save username and password on this site")); + + QDialogButtonBox* box = new QDialogButtonBox(dialog); + box->addButton(QDialogButtonBox::Ok); + box->addButton(QDialogButtonBox::Cancel); + connect(box, SIGNAL(rejected()), dialog, SLOT(reject())); + connect(box, SIGNAL(accepted()), dialog, SLOT(accept())); + + label->setText(tr("A username and password are being requested by %1. " + "The site says: \"%2\"").arg(requestUrl.host(), QzTools::escape(auth->realm()))); + + formLa->addRow(label); + formLa->addRow(userLab, user); + formLa->addRow(passLab, pass); + formLa->addRow(save); + formLa->addWidget(box); + + AutoFill* fill = mApp->autoFill(); + QString storedUser; + QString storedPassword; + bool shouldUpdateEntry = false; + + if (fill->isStored(requestUrl)) { + const QVector &data = fill->getFormData(requestUrl); + if (!data.isEmpty()) { + save->setChecked(true); + shouldUpdateEntry = true; + storedUser = data.first().username; + storedPassword = data.first().password; + user->setText(storedUser); + pass->setText(storedPassword); + } + } + + // Try to set the originating WebTab as a current tab + TabbedWebView* tabView = qobject_cast(view()); + if (tabView) { + tabView->setAsCurrentTab(); + } + + // Do not save when private browsing is enabled + if (mApp->isPrivate()) { + save->setVisible(false); + } + + if (dialog->exec() != QDialog::Accepted) { + return; + } + + auth->setUser(user->text()); + auth->setPassword(pass->text()); + + if (save->isChecked()) { + if (shouldUpdateEntry) { + if (storedUser != user->text() || storedPassword != pass->text()) { + fill->updateEntry(requestUrl, user->text(), pass->text()); + } + } + else { + fill->addEntry(requestUrl, user->text(), pass->text()); + } + } +} + +void WebPage::proxyAuthentication(const QUrl &requestUrl, QAuthenticator* auth, const QString &proxyHost) +{ + Q_UNUSED(requestUrl) + + QVector passwords = mApp->autoFill()->getFormData(QUrl(proxyHost)); + if (!passwords.isEmpty()) { + auth->setUser(passwords.at(0).username); + auth->setPassword(passwords.at(0).password); + return; + } + + QDialog* dialog = new QDialog(); + dialog->setWindowTitle(tr("Proxy authorisation required")); + + QFormLayout* formLa = new QFormLayout(dialog); + + QLabel* label = new QLabel(dialog); + QLabel* userLab = new QLabel(dialog); + QLabel* passLab = new QLabel(dialog); + userLab->setText(tr("Username: ")); + passLab->setText(tr("Password: ")); + + QLineEdit* user = new QLineEdit(dialog); + QLineEdit* pass = new QLineEdit(dialog); + pass->setEchoMode(QLineEdit::Password); + QCheckBox* save = new QCheckBox(dialog); + save->setText(tr("Remember username and password for this proxy.")); + + QDialogButtonBox* box = new QDialogButtonBox(dialog); + box->addButton(QDialogButtonBox::Ok); + box->addButton(QDialogButtonBox::Cancel); + connect(box, SIGNAL(rejected()), dialog, SLOT(reject())); + connect(box, SIGNAL(accepted()), dialog, SLOT(accept())); + + label->setText(tr("A username and password are being requested by proxy %1. ").arg(proxyHost)); + formLa->addRow(label); + formLa->addRow(userLab, user); + formLa->addRow(passLab, pass); + formLa->addRow(save); + formLa->addWidget(box); + + if (dialog->exec() != QDialog::Accepted) { + return; + } + + if (save->isChecked()) { + mApp->autoFill()->addEntry(QUrl(proxyHost), user->text(), pass->text()); + } + + auth->setUser(user->text()); + auth->setPassword(pass->text()); +} + +#if QTWEBENGINE_DISABLED +void WebPage::dbQuotaExceeded(QWebEngineFrame* frame) { if (!frame) { return; @@ -483,6 +639,7 @@ void WebPage::dbQuotaExceeded(QWebFrame* frame) frame->securityOrigin().setDatabaseQuota(oldQuota * 2); } +#endif void WebPage::doWebSearch(const QString &text) { @@ -504,7 +661,7 @@ void WebPage::appCacheQuotaExceeded(QWebSecurityOrigin* origin, quint64 original origin->setApplicationCacheQuota(originalQuota * 2); } -void WebPage::featurePermissionRequested(QWebFrame* frame, const QWebPage::Feature &feature) +void WebPage::featurePermissionRequested(QWebEngineFrame* frame, const QWebEnginePage::Feature &feature) { mApp->html5PermissionsManager()->requestPermissions(this, frame, feature); } @@ -513,7 +670,7 @@ void WebPage::featurePermissionRequested(QWebFrame* frame, const QWebPage::Featu bool WebPage::event(QEvent* event) { if (event->type() == QEvent::Leave) { - // QWebPagePrivate::leaveEvent(): + // QWebEnginePagePrivate::leaveEvent(): // Fake a mouse move event just outside of the widget, since all // the interesting mouse-out behavior like invalidating scrollbars // is handled by the WebKit event handler's mouseMoved function. @@ -548,10 +705,10 @@ bool WebPage::event(QEvent* event) } QMouseEvent fakeEvent(QEvent::MouseMove, mousePos, Qt::NoButton, Qt::NoButton, Qt::NoModifier); - return QWebPage::event(&fakeEvent); + return QWebEnginePage::event(&fakeEvent); } - return QWebPage::event(event); + return QWebEnginePage::event(event); } void WebPage::setSSLCertificate(const QSslCertificate &cert) @@ -569,12 +726,13 @@ QSslCertificate WebPage::sslCertificate() return QSslCertificate(); } -bool WebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest &request, NavigationType type) +#if QTWEBENGINE_DISABLED +bool WebPage::acceptNavigationRequest(QWebEngineFrame* frame, const QNetworkRequest &request, NavigationType type) { m_lastRequestType = type; m_lastRequestUrl = request.url(); - if (type == QWebPage::NavigationTypeFormResubmitted) { + if (type == QWebEnginePage::NavigationTypeFormResubmitted) { // Don't show this dialog if app is still starting if (!view() || !view()->isVisible()) { return false; @@ -588,9 +746,10 @@ bool WebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest &r } } - bool accept = QWebPage::acceptNavigationRequest(frame, request, type); + bool accept = QWebEnginePage::acceptNavigationRequest(frame, request, type); return accept; } +#endif void WebPage::populateNetworkRequest(QNetworkRequest &request) { @@ -599,15 +758,17 @@ void WebPage::populateNetworkRequest(QNetworkRequest &request) QVariant variant = QVariant::fromValue((void*) pagePointer); request.setAttribute((QNetworkRequest::Attribute)(QNetworkRequest::User + 100), variant); +#if QTWEBENGINE_DISABLED if (m_lastRequestUrl == request.url()) { request.setAttribute((QNetworkRequest::Attribute)(QNetworkRequest::User + 101), m_lastRequestType); if (m_lastRequestType == NavigationTypeLinkClicked) { request.setRawHeader("X-QupZilla-UserLoadAction", QByteArray("1")); } } +#endif } -QWebPage* WebPage::createWindow(QWebPage::WebWindowType type) +QWebEnginePage* WebPage::createWindow(QWebEnginePage::WebWindowType type) { if (m_view) { return new PopupWebPage(type, m_view->browserWindow()); @@ -631,7 +792,7 @@ QObject* WebPage::createPlugin(const QString &classid, const QUrl &url, return new RecoveryWidget(m_view, m_view->browserWindow()); } else { - mainFrame()->load(QUrl("qupzilla:start")); + load(QUrl("qupzilla:start")); } return 0; @@ -665,6 +826,7 @@ QVector WebPage::autoFillData() const void WebPage::cleanBlockedObjects() { +#if QTWEBENGINE_DISABLED AdBlockManager* manager = AdBlockManager::instance(); if (!manager->isEnabled()) { return; @@ -718,14 +880,16 @@ void WebPage::cleanBlockedObjects() if (view() && !view()->isVisible() && !url().fragment().isEmpty()) { mainFrame()->scrollToAnchor(url().fragment()); } +#endif } QString WebPage::userAgentForUrl(const QUrl &url) const { QString userAgent = mApp->userAgentManager()->userAgentForUrl(url); +#if QTWEBENGINE_DISABLED if (userAgent.isEmpty()) { - userAgent = QWebPage::userAgentForUrl(url); + userAgent = QWebEnginePage::userAgentForUrl(url); #ifdef Q_OS_MAC #ifdef __i386__ || __x86_64__ userAgent.replace(QLatin1String("PPC Mac OS X"), QLatin1String("Intel Mac OS X")); @@ -733,9 +897,11 @@ QString WebPage::userAgentForUrl(const QUrl &url) const #endif } +#endif return userAgent; } +#if QTWEBENGINE_DISABLED bool WebPage::supportsExtension(Extension extension) const { Q_UNUSED(extension) @@ -746,11 +912,11 @@ bool WebPage::supportsExtension(Extension extension) const bool WebPage::extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output) { if (extension == ChooseMultipleFilesExtension) { - const QWebPage::ChooseMultipleFilesExtensionOption* exOption = static_cast(option); - QWebPage::ChooseMultipleFilesExtensionReturn* exReturn = static_cast(output); + const QWebEnginePage::ChooseMultipleFilesExtensionOption* exOption = static_cast(option); + QWebEnginePage::ChooseMultipleFilesExtensionReturn* exReturn = static_cast(output); if (!exOption || !exReturn) { - return QWebPage::extension(extension, option, output); + return QWebEnginePage::extension(extension, option, output); } QString suggestedFileName; @@ -762,21 +928,21 @@ bool WebPage::extension(Extension extension, const ExtensionOption* option, Exte return true; } - const ErrorPageExtensionOption* exOption = static_cast(option); - ErrorPageExtensionReturn* exReturn = static_cast(output); + const ErrorPageExtensionOption* exOption = static_cast(option); + ErrorPageExtensionReturn* exReturn = static_cast(output); if (!exOption || !exReturn) { - return QWebPage::extension(extension, option, output); + return QWebEnginePage::extension(extension, option, output); } WebPage* erPage = qobject_cast(exOption->frame->page()); if (!erPage) { - return QWebPage::extension(extension, option, output); + return QWebEnginePage::extension(extension, option, output); } QString errorString; - if (exOption->domain == QWebPage::QtNetwork) { + if (exOption->domain == QWebEnginePage::QtNetwork) { switch (exOption->error) { case QNetworkReply::ConnectionRefusedError: errorString = tr("Server refused the connection"); @@ -881,7 +1047,7 @@ bool WebPage::extension(Extension extension, const ExtensionOption* option, Exte return false; } } - else if (exOption->domain == QWebPage::Http) { + else if (exOption->domain == QWebEnginePage::Http) { // 200 status code = OK // It shouldn't be reported as an error, but sometimes it is ... if (exOption->error == 200) { @@ -889,7 +1055,7 @@ bool WebPage::extension(Extension extension, const ExtensionOption* option, Exte } errorString = tr("Error code %1").arg(exOption->error); } - else if (exOption->domain == QWebPage::WebKit) { + else if (exOption->domain == QWebEnginePage::WebKit) { return false; // Downloads } @@ -918,11 +1084,12 @@ bool WebPage::extension(Extension extension, const ExtensionOption* option, Exte exReturn->content = QString(errString + "").toUtf8(); return true; } +#endif -bool WebPage::javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg, const QString &defaultValue, QString* result) +bool WebPage::javaScriptPrompt(QUrl securityOrigin, const QString &msg, const QString &defaultValue, QString* result) { #ifndef NONBLOCK_JS_DIALOGS - return QWebPage::javaScriptPrompt(originatingFrame, msg, defaultValue, result); + return QWebEnginePage::javaScriptPrompt(securityOrigin, msg, defaultValue, result); #else if (m_runningLoop) { return false; @@ -963,10 +1130,10 @@ bool WebPage::javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg, #endif } -bool WebPage::javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg) +bool WebPage::javaScriptConfirm(QUrl securityOrigin, const QString &msg) { #ifndef NONBLOCK_JS_DIALOGS - return QWebPage::javaScriptConfirm(originatingFrame, msg); + return QWebEnginePage::javaScriptConfirm(securityOrigin, msg); #else if (m_runningLoop) { return false; @@ -1003,9 +1170,9 @@ bool WebPage::javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg) #endif } -void WebPage::javaScriptAlert(QWebFrame* originatingFrame, const QString &msg) +void WebPage::javaScriptAlert(QUrl securityOrigin, const QString &msg) { - Q_UNUSED(originatingFrame) + Q_UNUSED(securityOrigin) if (m_blockAlerts || m_runningLoop) { return; @@ -1058,11 +1225,14 @@ void WebPage::javaScriptAlert(QWebFrame* originatingFrame, const QString &msg) void WebPage::setJavaScriptEnabled(bool enabled) { - settings()->setAttribute(QWebSettings::JavascriptEnabled, enabled); +#if QTWEBENGINE_DISABLED + settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, enabled); m_javaScriptEnabled = enabled; +#endif } -QString WebPage::chooseFile(QWebFrame* originatingFrame, const QString &oldFile) +#if QTWEBENGINE_DISABLED +QString WebPage::chooseFile(QWebEngineFrame* originatingFrame, const QString &oldFile) { QString suggFileName; @@ -1073,7 +1243,7 @@ QString WebPage::chooseFile(QWebFrame* originatingFrame, const QString &oldFile) suggFileName = oldFile; } - const QString fileName = QzTools::getOpenFileName("WebPage-ChooseFile", originatingFrame->page()->view(), tr("Choose file..."), suggFileName); + const QString fileName = QzTools::getOpenFileName("WebPage-ChooseFile", view(), tr("Choose file..."), suggFileName); if (!fileName.isEmpty()) { s_lastUploadLocation = fileName; @@ -1089,6 +1259,7 @@ QString WebPage::chooseFile(QWebFrame* originatingFrame, const QString &oldFile) return fileName; } +#endif bool WebPage::isPointerSafeToUse(WebPage* page) { diff --git a/src/lib/webkit/webpage.h b/src/lib/webkit/webpage.h index 4e1004b84..7166c56b7 100644 --- a/src/lib/webkit/webpage.h +++ b/src/lib/webkit/webpage.h @@ -18,7 +18,7 @@ #ifndef WEBPAGE_H #define WEBPAGE_H -#include +#include #include #include @@ -35,7 +35,7 @@ class SpeedDial; class NetworkManagerProxy; class DelayedFileWatcher; -class QUPZILLA_EXPORT WebPage : public QWebPage +class QUPZILLA_EXPORT WebPage : public QWebEnginePage { Q_OBJECT public: @@ -51,17 +51,15 @@ public: WebPage(QObject* parent = 0); ~WebPage(); - QUrl url() const; - void setWebView(TabbedWebView* view); void populateNetworkRequest(QNetworkRequest &request); void setSSLCertificate(const QSslCertificate &cert); QSslCertificate sslCertificate(); - bool javaScriptPrompt(QWebFrame* originatingFrame, const QString &msg, const QString &defaultValue, QString* result); - bool javaScriptConfirm(QWebFrame* originatingFrame, const QString &msg); - void javaScriptAlert(QWebFrame* originatingFrame, const QString &msg); + bool javaScriptPrompt(QUrl securityOrigin, const QString &msg, const QString &defaultValue, QString* result); + bool javaScriptConfirm(QUrl securityOrigin, const QString &msg); + void javaScriptAlert(QUrl securityOrigin, const QString &msg); void setJavaScriptEnabled(bool enabled); @@ -80,7 +78,9 @@ public: void addRejectedCerts(const QList &certs); bool containsRejectedCerts(const QList &certs); +#if QTWEBENGINE_DISABLED QWebElement activeElement() const; +#endif QString userAgentForUrl(const QUrl &url) const; static bool isPointerSafeToUse(WebPage* page); @@ -100,14 +100,18 @@ private slots: void addJavaScriptObject(); void watchedFileChanged(const QString &file); - void printFrame(QWebFrame* frame); void downloadRequested(const QNetworkRequest &request); void windowCloseRequested(); + void authentication(const QUrl &requestUrl, QAuthenticator* auth); + void proxyAuthentication(const QUrl &requestUrl, QAuthenticator* auth, const QString &proxyHost); +#if QTWEBENGINE_DISABLED void frameCreated(QWebFrame* frame); void frameInitialLayoutCompleted(); + void dbQuotaExceeded(QWebEngineFrame* frame); + void printFrame(QWebEngineFrame* frame); +#endif - void dbQuotaExceeded(QWebFrame* frame); void doWebSearch(const QString &text); #ifdef USE_QTWEBKIT_2_2 @@ -117,14 +121,16 @@ private slots: protected: bool event(QEvent* event); - QWebPage* createWindow(QWebPage::WebWindowType type); + QWebEnginePage* createWindow(QWebEnginePage::WebWindowType type); QObject* createPlugin(const QString &classid, const QUrl &url, const QStringList ¶mNames, const QStringList ¶mValues); private: +#if QTWEBENGINE_DISABLED bool supportsExtension(Extension extension) const; bool extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output = 0); bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest &request, NavigationType type); QString chooseFile(QWebFrame* originatingFrame, const QString &oldFile); +#endif void handleUnknownProtocol(const QUrl &url); void desktopServicesOpen(const QUrl &url); @@ -144,7 +150,6 @@ private: QVector m_adBlockedEntries; QVector m_passwordEntries; - QWebPage::NavigationType m_lastRequestType; QUrl m_lastRequestUrl; int m_loadProgress; diff --git a/src/lib/webkit/webpluginfactory.cpp b/src/lib/webkit/webpluginfactory.cpp index a48f74392..f8f7fbccd 100644 --- a/src/lib/webkit/webpluginfactory.cpp +++ b/src/lib/webkit/webpluginfactory.cpp @@ -22,6 +22,7 @@ #include "adblockmanager.h" #include "webpage.h" +#if QTWEBENGINE_DISABLED #include WebPluginFactory::WebPluginFactory(WebPage* page) @@ -97,3 +98,5 @@ QList WebPluginFactory::plugins() const // plugins.append(plugin); // return plugins; } + +#endif diff --git a/src/lib/webkit/webpluginfactory.h b/src/lib/webkit/webpluginfactory.h index 9f83eec51..ddb6883ad 100644 --- a/src/lib/webkit/webpluginfactory.h +++ b/src/lib/webkit/webpluginfactory.h @@ -18,6 +18,7 @@ #ifndef WEB_PLUGIN_FACTORY_H #define WEB_PLUGIN_FACTORY_H +#if QTWEBENGINE_DISABLED #include #include "qzcommon.h" @@ -35,4 +36,5 @@ public: private: WebPage* m_page; }; +#endif #endif // WEB_PLUGIN_FACTORY_H diff --git a/src/lib/webkit/webview.cpp b/src/lib/webkit/webview.cpp index 0c04ac211..4c1eb2604 100644 --- a/src/lib/webkit/webview.cpp +++ b/src/lib/webkit/webview.cpp @@ -45,8 +45,7 @@ #include #include #include -#include -#include +#include #include #include #include @@ -54,10 +53,12 @@ bool WebView::s_forceContextMenuOnMouseRelease = false; WebView::WebView(QWidget* parent) - : QWebView(parent) + : QWebEngineView(parent) , m_isLoading(false) , m_progress(0) +#if QTWEBENGINE_DISABLED , m_clickedFrame(0) +#endif , m_page(0) , m_disableTouchMocking(false) , m_isReloading(false) @@ -67,8 +68,10 @@ WebView::WebView(QWidget* parent) connect(this, SIGNAL(loadStarted()), this, SLOT(slotLoadStarted())); connect(this, SIGNAL(loadProgress(int)), this, SLOT(slotLoadProgress(int))); connect(this, SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished())); - connect(this, SIGNAL(iconChanged()), this, SLOT(slotIconChanged())); connect(this, SIGNAL(urlChanged(QUrl)), this, SLOT(slotUrlChanged(QUrl))); +#if QTWEBENGINE_DISABLED + connect(this, SIGNAL(iconChanged()), this, SLOT(slotIconChanged())); +#endif m_zoomLevels = zoomLevels(); m_currentZoomLevel = m_zoomLevels.indexOf(100); @@ -82,7 +85,7 @@ WebView::WebView(QWidget* parent) WebView::~WebView() { - delete m_page; + //delete m_page; } QIcon WebView::icon() const @@ -99,9 +102,11 @@ QIcon WebView::icon() const return IconProvider::standardIcon(QStyle::SP_ComputerIcon); } - if (!QWebView::icon().isNull()) { - return QWebView::icon(); +#if QTWEBENGINE_DISABLED + if (!QWebEngineView::icon().isNull()) { + return QWebEngineView::icon(); } +#endif if (!m_siteIcon.isNull() && m_siteIconUrl.host() == url().host()) { return m_siteIcon; @@ -112,7 +117,7 @@ QIcon WebView::icon() const QString WebView::title() const { - QString title = QWebView::title(); + QString title = QWebEngineView::title(); if (title.isEmpty()) { title = url().toString(QUrl::RemoveFragment); @@ -127,7 +132,7 @@ QString WebView::title() const bool WebView::isTitleEmpty() const { - return QWebView::title().isEmpty(); + return QWebEngineView::title().isEmpty(); } QUrl WebView::url() const @@ -146,16 +151,18 @@ WebPage* WebView::page() const return m_page; } -void WebView::setPage(QWebPage* page) +void WebView::setPage(QWebEnginePage* page) { if (m_page == page) { return; } - QWebView::setPage(page); + QWebEngineView::setPage(page); m_page = qobject_cast(page); - connect(m_page, SIGNAL(saveFrameStateRequested(QWebFrame*,QWebHistoryItem*)), this, SLOT(frameStateChanged())); +#if QTWEBENGINE_DISABLED + connect(m_page, SIGNAL(saveFrameStateRequested(QWebEngineFrame*,QWebHistoryItem*)), this, SLOT(frameStateChanged())); +#endif connect(m_page, SIGNAL(privacyChanged(bool)), this, SIGNAL(privacyChanged(bool))); // Set default zoom level @@ -166,11 +173,13 @@ void WebView::setPage(QWebPage* page) mApp->plugins()->emitWebPageCreated(m_page); +#if QTWEBENGINE_DISABLED // Set white background by default. // Fixes issue with dark themes. See #602 QPalette pal = palette(); pal.setBrush(QPalette::Base, Qt::white); page->setPalette(pal); +#endif } void WebView::load(const LoadRequest &request) @@ -182,9 +191,9 @@ void WebView::load(const LoadRequest &request) // Is the javascript source percent encoded or not? // Looking for % character in source should work in most cases if (scriptSource.contains(QL1C('%'))) - page()->mainFrame()->evaluateJavaScript(QUrl::fromPercentEncoding(scriptSource.toUtf8())); + page()->runJavaScript(QUrl::fromPercentEncoding(scriptSource.toUtf8())); else - page()->mainFrame()->evaluateJavaScript(scriptSource); + page()->runJavaScript(scriptSource); return; } @@ -235,11 +244,13 @@ bool WebView::hasRss() const return m_hasRss; } +#if QTWEBENGINE_DISABLED QWebElement WebView::activeElement() const { QRect activeRect = inputMethodQuery(Qt::ImMicroFocus).toRect(); return page()->mainFrame()->hitTestContent(activeRect.center()).element(); } +#endif int WebView::zoomLevel() const { @@ -254,11 +265,13 @@ void WebView::setZoomLevel(int level) bool WebView::onBeforeUnload() { +#if QTWEBENGINE_DISABLED const QString res = page()->mainFrame()->evaluateJavaScript("window.onbeforeunload(new Event(\"beforeunload\"))").toString(); if (!res.isEmpty()) { return page()->javaScriptConfirm(page()->mainFrame(), res); } +#endif return true; } @@ -364,32 +377,32 @@ void WebView::zoomReset() void WebView::editUndo() { - triggerPageAction(QWebPage::Undo); + triggerPageAction(QWebEnginePage::Undo); } void WebView::editRedo() { - triggerPageAction(QWebPage::Redo); + triggerPageAction(QWebEnginePage::Redo); } void WebView::editCut() { - triggerPageAction(QWebPage::Cut); + triggerPageAction(QWebEnginePage::Cut); } void WebView::editCopy() { - triggerPageAction(QWebPage::Copy); + triggerPageAction(QWebEnginePage::Copy); } void WebView::editPaste() { - triggerPageAction(QWebPage::Paste); + triggerPageAction(QWebEnginePage::Paste); } void WebView::editSelectAll() { - triggerPageAction(QWebPage::SelectAll); + triggerPageAction(QWebEnginePage::SelectAll); } void WebView::editDelete() @@ -402,40 +415,44 @@ void WebView::reload() { m_isReloading = true; - if (LocationBar::convertUrlToText(QWebView::url()).isEmpty() && !m_aboutToLoadUrl.isEmpty()) { + if (LocationBar::convertUrlToText(QWebEngineView::url()).isEmpty() && !m_aboutToLoadUrl.isEmpty()) { load(m_aboutToLoadUrl); return; } - QWebView::reload(); + QWebEngineView::reload(); } void WebView::reloadBypassCache() { - triggerPageAction(QWebPage::ReloadAndBypassCache); + triggerPageAction(QWebEnginePage::ReloadAndBypassCache); } void WebView::back() { - QWebHistory* history = page()->history(); + QWebEngineHistory* history = page()->history(); if (history->canGoBack()) { history->back(); emit urlChanged(url()); +#if QTWEBENGINE_DISABLED emit iconChanged(); +#endif } } void WebView::forward() { - QWebHistory* history = page()->history(); + QWebEngineHistory* history = page()->history(); if (history->canGoForward()) { history->forward(); emit urlChanged(url()); +#if QTWEBENGINE_DISABLED emit iconChanged(); +#endif } } @@ -472,7 +489,7 @@ void WebView::slotLoadFinished() void WebView::frameStateChanged() { - // QWebFrame::baseUrl() is not updated yet, so we are invoking 0 second timer + // QWebEngineFrame::baseUrl() is not updated yet, so we are invoking 0 second timer QTimer::singleShot(0, this, SLOT(emitChangedUrl())); } @@ -483,16 +500,18 @@ void WebView::emitChangedUrl() void WebView::checkRss() { +#if QTWEBENGINE_DISABLED if (m_rssChecked) { return; } m_rssChecked = true; - QWebFrame* frame = page()->mainFrame(); + QWebEngineFrame* frame = page()->mainFrame(); const QWebElementCollection links = frame->findAllElements("link[type=\"application/rss+xml\"]"); m_hasRss = links.count() != 0; emit rssChanged(m_hasRss); +#endif } void WebView::slotIconChanged() @@ -599,7 +618,9 @@ void WebView::downloadUrlToDisk() void WebView::copyImageToClipboard() { - triggerPageAction(QWebPage::CopyImageToClipboard); +#if QTWEBENGINE_DISABLED + triggerPageAction(QWebEnginePage::CopyImageToClipboard); +#endif } void WebView::openActionUrl() @@ -609,7 +630,8 @@ void WebView::openActionUrl() } } -void WebView::showSource(QWebFrame* frame, const QString &selectedHtml) +#if QTWEBENGINE_DISABLED +void WebView::showSource(QWebEngineFrame* frame, const QString &selectedHtml) { if (!frame) { frame = page()->mainFrame(); @@ -619,11 +641,14 @@ void WebView::showSource(QWebFrame* frame, const QString &selectedHtml) QzTools::centerWidgetToParent(source, this); source->show(); } +#endif void WebView::showSiteInfo() { +#if QTWEBENGINE_DISABLED SiteInfo* s = new SiteInfo(this, this); s->show(); +#endif } void WebView::searchSelectedText() @@ -733,22 +758,26 @@ void WebView::userDefinedOpenUrlInBgTab(const QUrl &url) void WebView::loadClickedFrame() { +#if QTWEBENGINE_DISABLED QUrl frameUrl = m_clickedFrame->baseUrl(); if (frameUrl.isEmpty()) { frameUrl = m_clickedFrame->requestedUrl(); } load(frameUrl); +#endif } void WebView::loadClickedFrameInNewTab(bool invert) { +#if QTWEBENGINE_DISABLED QUrl frameUrl = m_clickedFrame->baseUrl(); if (frameUrl.isEmpty()) { frameUrl = m_clickedFrame->requestedUrl(); } userDefinedOpenUrlInNewTab(frameUrl, invert); +#endif } void WebView::loadClickedFrameInBgTab() @@ -758,50 +787,63 @@ void WebView::loadClickedFrameInBgTab() void WebView::reloadClickedFrame() { +#if QTWEBENGINE_DISABLED QUrl frameUrl = m_clickedFrame->baseUrl(); if (frameUrl.isEmpty()) { frameUrl = m_clickedFrame->requestedUrl(); } m_clickedFrame->load(frameUrl); +#endif } void WebView::printClickedFrame() { +#if QTWEBENGINE_DISABLED printPage(m_clickedFrame); +#endif } void WebView::clickedFrameZoomIn() { +#if QTWEBENGINE_DISABLED qreal zFactor = m_clickedFrame->zoomFactor() + 0.1; if (zFactor > 2.5) { zFactor = 2.5; } m_clickedFrame->setZoomFactor(zFactor); +#endif } void WebView::clickedFrameZoomOut() { +#if QTWEBENGINE_DISABLED qreal zFactor = m_clickedFrame->zoomFactor() - 0.1; if (zFactor < 0.5) { zFactor = 0.5; } m_clickedFrame->setZoomFactor(zFactor); +#endif } void WebView::clickedFrameZoomReset() { +#if QTWEBENGINE_DISABLED m_clickedFrame->setZoomFactor(zoomFactor()); +#endif } void WebView::showClickedFrameSource() { +#if QTWEBENGINE_DISABLED showSource(m_clickedFrame); +#endif } -void WebView::printPage(QWebFrame* frame) +#if QTWEBENGINE_DISABLED +void WebView::printPage(QWebEngineFrame* frame) { QPrintPreviewDialog* dialog = new QPrintPreviewDialog(this); dialog->setAttribute(Qt::WA_DeleteOnClose); @@ -816,12 +858,14 @@ void WebView::printPage(QWebFrame* frame) dialog->open(); } +#endif QUrl WebView::lastUrl() { return m_lastUrl; } +#if QTWEBENGINE_DISABLED bool WebView::isMediaElement(const QWebElement &element) { return (element.tagName().toLower() == QLatin1String("video") @@ -921,7 +965,7 @@ void WebView::createContextMenu(QMenu* menu, const QWebHitTestResult &hitTest, c ++i; } - if (menu->actions().last() == pageAction(QWebPage::InspectElement)) { + if (menu->actions().last() == pageAction(QWebEnginePage::InspectElement)) { // We have own Inspect Element action menu->actions().last()->setVisible(false); } @@ -953,7 +997,7 @@ void WebView::createContextMenu(QMenu* menu, const QWebHitTestResult &hitTest, c void WebView::createPageContextMenu(QMenu* menu, const QPoint &pos) { - QWebFrame* frameAtPos = page()->frameAt(pos); + QWebEngineFrame* frameAtPos = page()->frameAt(pos); QAction* action = menu->addAction(tr("&Back"), this, SLOT(back())); action->setIcon(IconProvider::standardIcon(QStyle::SP_ArrowBack)); @@ -1045,8 +1089,8 @@ void WebView::createLinkContextMenu(QMenu* menu, const QWebHitTestResult &hitTes menu->addSeparator(); if (!selectedText().isEmpty()) { - pageAction(QWebPage::Copy)->setIcon(QIcon::fromTheme("edit-copy")); - menu->addAction(pageAction(QWebPage::Copy)); + pageAction(QWebEnginePage::Copy)->setIcon(QIcon::fromTheme("edit-copy")); + menu->addAction(pageAction(QWebEnginePage::Copy)); } } @@ -1066,8 +1110,8 @@ void WebView::createImageContextMenu(QMenu* menu, const QWebHitTestResult &hitTe menu->addSeparator(); if (!selectedText().isEmpty()) { - pageAction(QWebPage::Copy)->setIcon(QIcon::fromTheme("edit-copy")); - menu->addAction(pageAction(QWebPage::Copy)); + pageAction(QWebEnginePage::Copy)->setIcon(QIcon::fromTheme("edit-copy")); + menu->addAction(pageAction(QWebEnginePage::Copy)); } } @@ -1078,8 +1122,8 @@ void WebView::createSelectedTextContextMenu(QMenu* menu, const QWebHitTestResult QString selectedText = page()->selectedText(); menu->addSeparator(); - if (!menu->actions().contains(pageAction(QWebPage::Copy))) { - menu->addAction(pageAction(QWebPage::Copy)); + if (!menu->actions().contains(pageAction(QWebEnginePage::Copy))) { + menu->addAction(pageAction(QWebEnginePage::Copy)); } menu->addAction(QIcon::fromTheme("mail-message-new"), tr("Send text..."), this, SLOT(sendLinkByMail()))->setData(selectedText); menu->addSeparator(); @@ -1186,74 +1230,77 @@ void WebView::muteMedia() m_clickedElement.evaluateJavaScript("this.muted = true"); } } +#endif void WebView::addSpeedDial() { - page()->mainFrame()->evaluateJavaScript("addSpeedDial()"); + page()->runJavaScript("addSpeedDial()"); } void WebView::configureSpeedDial() { - page()->mainFrame()->evaluateJavaScript("configureSpeedDial()"); + page()->runJavaScript("configureSpeedDial()"); } void WebView::reloadAllSpeedDials() { - page()->mainFrame()->evaluateJavaScript("reloadAll()"); + page()->runJavaScript("reloadAll()"); } void WebView::initializeActions() { - QAction* undoAction = pageAction(QWebPage::Undo); + QAction* undoAction = pageAction(QWebEnginePage::Undo); undoAction->setText(tr("&Undo")); undoAction->setShortcut(QKeySequence("Ctrl+Z")); undoAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); undoAction->setIcon(QIcon::fromTheme(QSL("edit-undo"))); - QAction* redoAction = pageAction(QWebPage::Redo); + QAction* redoAction = pageAction(QWebEnginePage::Redo); redoAction->setText(tr("&Redo")); redoAction->setShortcut(QKeySequence("Ctrl+Shift+Z")); redoAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); redoAction->setIcon(QIcon::fromTheme(QSL("edit-redo"))); - QAction* cutAction = pageAction(QWebPage::Cut); + QAction* cutAction = pageAction(QWebEnginePage::Cut); cutAction->setText(tr("&Cut")); cutAction->setShortcut(QKeySequence("Ctrl+X")); cutAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); cutAction->setIcon(QIcon::fromTheme(QSL("edit-cut"))); - QAction* copyAction = pageAction(QWebPage::Copy); + QAction* copyAction = pageAction(QWebEnginePage::Copy); copyAction->setText(tr("&Copy")); copyAction->setShortcut(QKeySequence("Ctrl+C")); copyAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); copyAction->setIcon(QIcon::fromTheme(QSL("edit-copy"))); - QAction* pasteAction = pageAction(QWebPage::Paste); + QAction* pasteAction = pageAction(QWebEnginePage::Paste); pasteAction->setText(tr("&Paste")); pasteAction->setShortcut(QKeySequence("Ctrl+V")); pasteAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); pasteAction->setIcon(QIcon::fromTheme(QSL("edit-paste"))); - QAction* selectAllAction = pageAction(QWebPage::SelectAll); + QAction* selectAllAction = pageAction(QWebEnginePage::SelectAll); selectAllAction->setText(tr("Select All")); selectAllAction->setShortcut(QKeySequence("Ctrl+A")); selectAllAction->setShortcutContext(Qt::WidgetWithChildrenShortcut); selectAllAction->setIcon(QIcon::fromTheme(QSL("edit-select-all"))); - QAction* reloadAction = pageAction(QWebPage::Reload); + QAction* reloadAction = pageAction(QWebEnginePage::Reload); reloadAction->setText(tr("&Reload")); reloadAction->setIcon(QIcon::fromTheme(QSL("view-refresh"))); - QAction* stopAction = pageAction(QWebPage::Stop); + QAction* stopAction = pageAction(QWebEnginePage::Stop); stopAction->setText(tr("S&top")); stopAction->setIcon(QIcon::fromTheme(QSL("process-stop"))); - pageAction(QWebPage::SetTextDirectionDefault)->setText(tr("Default")); - pageAction(QWebPage::SetTextDirectionLeftToRight)->setText(tr("Left to Right")); - pageAction(QWebPage::SetTextDirectionRightToLeft)->setText(tr("Right to Left")); - pageAction(QWebPage::ToggleBold)->setText(tr("Bold")); - pageAction(QWebPage::ToggleItalic)->setText(tr("Italic")); - pageAction(QWebPage::ToggleUnderline)->setText(tr("Underline")); +#if QTWEBENGINE_DISABLED + pageAction(QWebEnginePage::SetTextDirectionDefault)->setText(tr("Default")); + pageAction(QWebEnginePage::SetTextDirectionLeftToRight)->setText(tr("Left to Right")); + pageAction(QWebEnginePage::SetTextDirectionRightToLeft)->setText(tr("Right to Left")); + pageAction(QWebEnginePage::ToggleBold)->setText(tr("Bold")); + pageAction(QWebEnginePage::ToggleItalic)->setText(tr("Italic")); + pageAction(QWebEnginePage::ToggleUnderline)->setText(tr("Underline")); +#endif // Make action shortcuts available for webview addAction(undoAction); @@ -1277,7 +1324,7 @@ void WebView::wheelEvent(QWheelEvent* event) return; } - QWebView::wheelEvent(event); + QWebEngineView::wheelEvent(event); } void WebView::mousePressEvent(QMouseEvent* event) @@ -1298,19 +1345,22 @@ void WebView::mousePressEvent(QMouseEvent* event) break; case Qt::MiddleButton: { - QWebFrame* frame = page()->frameAt(event->pos()); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* frame = page()->frameAt(event->pos()); if (frame) { m_clickedUrl = frame->hitTestContent(event->pos()).linkUrl(); if (!m_clickedUrl.isEmpty()) { return; } } +#endif break; } case Qt::LeftButton: { - QWebFrame* frame = page()->frameAt(event->pos()); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* frame = page()->frameAt(event->pos()); if (frame) { const QUrl link = frame->hitTestContent(event->pos()).linkUrl(); if (event->modifiers() & Qt::ControlModifier && isUrlValid(link)) { @@ -1319,13 +1369,14 @@ void WebView::mousePressEvent(QMouseEvent* event) return; } } +#endif } default: break; } - QWebView::mousePressEvent(event); + QWebEngineView::mousePressEvent(event); } void WebView::mouseReleaseEvent(QMouseEvent* event) @@ -1336,7 +1387,8 @@ void WebView::mouseReleaseEvent(QMouseEvent* event) switch (event->button()) { case Qt::MiddleButton: { - QWebFrame* frame = page()->frameAt(event->pos()); +#if QTWEBENGINE_DISABLED + QWebEngineFrame* frame = page()->frameAt(event->pos()); if (frame) { const QUrl link = frame->hitTestContent(event->pos()).linkUrl(); if (m_clickedUrl == link && isUrlValid(link)) { @@ -1345,6 +1397,7 @@ void WebView::mouseReleaseEvent(QMouseEvent* event) return; } } +#endif break; } @@ -1359,7 +1412,7 @@ void WebView::mouseReleaseEvent(QMouseEvent* event) break; } - QWebView::mouseReleaseEvent(event); + QWebEngineView::mouseReleaseEvent(event); } void WebView::mouseMoveEvent(QMouseEvent* event) @@ -1368,7 +1421,7 @@ void WebView::mouseMoveEvent(QMouseEvent* event) return; } - QWebView::mouseMoveEvent(event); + QWebEngineView::mouseMoveEvent(event); } void WebView::keyPressEvent(QKeyEvent* event) @@ -1386,6 +1439,7 @@ void WebView::keyPressEvent(QKeyEvent* event) // event->spontaneous() check guards recursive calling of keyPressEvent // Events created from app have spontaneous() == false +#if QTWEBENGINE_DISABLED if (event->spontaneous() && (eventKey == Qt::Key_Left || eventKey == Qt::Key_Right)) { const QWebElement elementHasCursor = activeElement(); if (!elementHasCursor.isNull()) { @@ -1455,7 +1509,7 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_Down: if (event->modifiers() & Qt::ShiftModifier) { - triggerPageAction(QWebPage::SelectNextLine); + triggerPageAction(QWebEnginePage::SelectNextLine); event->accept(); return; } @@ -1464,10 +1518,10 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_Left: if (event->modifiers() & Qt::ShiftModifier) { if (event->modifiers() == Qt::ShiftModifier) { - triggerPageAction(QWebPage::SelectPreviousChar); + triggerPageAction(QWebEnginePage::SelectPreviousChar); } else if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier)) { - triggerPageAction(QWebPage::SelectPreviousWord); + triggerPageAction(QWebEnginePage::SelectPreviousWord); } event->accept(); return; @@ -1477,10 +1531,10 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_Right: if (event->modifiers() & Qt::ShiftModifier) { if (event->modifiers() == Qt::ShiftModifier) { - triggerPageAction(QWebPage::SelectNextChar); + triggerPageAction(QWebEnginePage::SelectNextChar); } else if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier)) { - triggerPageAction(QWebPage::SelectNextWord); + triggerPageAction(QWebEnginePage::SelectNextWord); } event->accept(); return; @@ -1490,10 +1544,10 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_Home: if (event->modifiers() & Qt::ShiftModifier) { if (event->modifiers() == Qt::ShiftModifier) { - triggerPageAction(QWebPage::SelectStartOfLine); + triggerPageAction(QWebEnginePage::SelectStartOfLine); } else if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier)) { - triggerPageAction(QWebPage::SelectStartOfDocument); + triggerPageAction(QWebEnginePage::SelectStartOfDocument); } event->accept(); return; @@ -1503,10 +1557,10 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_End: if (event->modifiers() & Qt::ShiftModifier) { if (event->modifiers() == Qt::ShiftModifier) { - triggerPageAction(QWebPage::SelectEndOfLine); + triggerPageAction(QWebEnginePage::SelectEndOfLine); } else if (event->modifiers() == (Qt::ShiftModifier | Qt::ControlModifier)) { - triggerPageAction(QWebPage::SelectEndOfDocument); + triggerPageAction(QWebEnginePage::SelectEndOfDocument); } event->accept(); return; @@ -1515,12 +1569,12 @@ void WebView::keyPressEvent(QKeyEvent* event) case Qt::Key_Insert: if (event->modifiers() == Qt::ControlModifier) { - triggerPageAction(QWebPage::Copy); + triggerPageAction(QWebEnginePage::Copy); event->accept(); return; } if (event->modifiers() == Qt::ShiftModifier) { - triggerPageAction(QWebPage::Paste); + triggerPageAction(QWebEnginePage::Paste); event->accept(); return; } @@ -1529,8 +1583,9 @@ void WebView::keyPressEvent(QKeyEvent* event) default: break; } +#endif - QWebView::keyPressEvent(event); + QWebEngineView::keyPressEvent(event); } void WebView::keyReleaseEvent(QKeyEvent* event) @@ -1539,23 +1594,29 @@ void WebView::keyReleaseEvent(QKeyEvent* event) return; } - QWebView::keyReleaseEvent(event); + QWebEngineView::keyReleaseEvent(event); } void WebView::resizeEvent(QResizeEvent* event) { - QWebView::resizeEvent(event); + QWebEngineView::resizeEvent(event); +#if QTWEBENGINE_DISABLED emit viewportResized(page()->viewportSize()); +#endif } void WebView::loadRequest(const LoadRequest &req) { m_aboutToLoadUrl = req.url(); +#if QTWEBENGINE_DISABLED if (req.operation() == LoadRequest::GetOperation) - QWebView::load(req.networkRequest()); + QWebEngineView::load(req.networkRequest()); else - QWebView::load(req.networkRequest(), QNetworkAccessManager::PostOperation, req.data()); + QWebEngineView::load(req.networkRequest(), QNetworkAccessManager::PostOperation, req.data()); +#else + QWebEngineView::load(req.url()); +#endif } bool WebView::eventFilter(QObject* obj, QEvent* event) @@ -1568,6 +1629,7 @@ bool WebView::eventFilter(QObject* obj, QEvent* event) } } +#if QTWEBENGINE_DISABLED // This hack is no longer needed with QtWebKit 2.3 (bundled in Qt 5) #if QTWEBKIT_TO_2_3 // This function was taken and modified from QTestBrowser to fix bug #33 with flightradar24.com @@ -1588,6 +1650,7 @@ bool WebView::eventFilter(QObject* obj, QEvent* event) if (ev->type() == QEvent::MouseMove && !(ev->buttons() & Qt::LeftButton)) { return false; } +#endif if (ev->type() == QEvent::MouseButtonPress && !(ev->buttons() & Qt::LeftButton)) { return false; @@ -1634,5 +1697,5 @@ bool WebView::eventFilter(QObject* obj, QEvent* event) return false; } #endif - return QWebView::eventFilter(obj, event); + return QWebEngineView::eventFilter(obj, event); } diff --git a/src/lib/webkit/webview.h b/src/lib/webkit/webview.h index 82d475976..bee702afb 100644 --- a/src/lib/webkit/webview.h +++ b/src/lib/webkit/webview.h @@ -18,8 +18,11 @@ #ifndef WEBVIEW_H #define WEBVIEW_H -#include +#include +#include +#if QTWEBENGINE_DISABLED #include +#endif #include "qzcommon.h" #include "loadrequest.h" @@ -27,7 +30,7 @@ class WebPage; class LoadRequest; -class QUPZILLA_EXPORT WebView : public QWebView +class QUPZILLA_EXPORT WebView : public QWebEngineView { Q_OBJECT public: @@ -41,7 +44,7 @@ public: bool isTitleEmpty() const; WebPage* page() const; - void setPage(QWebPage* page); + void setPage(QWebEnginePage* page); void load(const LoadRequest &request); bool loadingError() const; @@ -51,7 +54,9 @@ public: void fakeLoadingProgress(int progress); bool hasRss() const; +#if QTWEBENGINE_DISABLED QWebElement activeElement() const; +#endif // Set zoom level (0 - 17) int zoomLevel() const; @@ -100,7 +105,9 @@ public slots: void back(); void forward(); - void printPage(QWebFrame* frame = 0); +#if QTWEBENGINE_DISABLED + void printPage(QWebEngineFrame* frame = 0); +#endif void sendPageByMail(); void savePageAs(); @@ -124,7 +131,9 @@ protected slots: void downloadUrlToDisk(); void copyImageToClipboard(); void openActionUrl(); - void showSource(QWebFrame* frame = 0, const QString &selectedHtml = QString()); +#if QTWEBENGINE_DISABLED + void showSource(QWebEngineFrame* frame = 0, const QString &selectedHtml = QString()); +#endif void showSiteInfo(); void searchSelectedText(); void searchSelectedTextInBackgroundTab(); @@ -136,7 +145,9 @@ protected slots: void userDefinedOpenUrlInNewTab(const QUrl &url = QUrl(), bool invert = false); void userDefinedOpenUrlInBgTab(const QUrl &url = QUrl()); +#if QTWEBENGINE_DISABLED void createSearchEngine(); +#endif // Clicked frame actions void loadClickedFrame(); @@ -162,6 +173,7 @@ protected: void applyZoom(); QUrl lastUrl(); +#if QTWEBENGINE_DISABLED bool isMediaElement(const QWebElement &element); void checkForForm(QMenu* menu, const QWebElement &element); @@ -171,10 +183,13 @@ protected: void createImageContextMenu(QMenu* menu, const QWebHitTestResult &hitTest); void createSelectedTextContextMenu(QMenu* menu, const QWebHitTestResult &hitTest); void createMediaContextMenu(QMenu* menu, const QWebHitTestResult &hitTest); +#endif private slots: +#if QTWEBENGINE_DISABLED void pauseMedia(); void muteMedia(); +#endif void frameStateChanged(); void emitChangedUrl(); void checkRss(); @@ -196,8 +211,10 @@ private: QUrl m_aboutToLoadUrl; QUrl m_lastUrl; +#if QTWEBENGINE_DISABLED QWebElement m_clickedElement; - QWebFrame* m_clickedFrame; + QWebEngineFrame* m_clickedFrame; +#endif QUrl m_clickedUrl; WebPage* m_page; diff --git a/src/lib/webtab/searchtoolbar.cpp b/src/lib/webtab/searchtoolbar.cpp index 61d0b84c4..86cef875a 100644 --- a/src/lib/webtab/searchtoolbar.cpp +++ b/src/lib/webtab/searchtoolbar.cpp @@ -1,6 +1,6 @@ /* ============================================================ * QupZilla - WebKit based browser -* Copyright (C) 2010-2014 David Rosca +* Copyright (C) 2010-2013 David Rosca * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,6 +24,22 @@ #include #include +template +struct InvokeWrapper { + R* receiver; + void (C::*memberFun)(Arg); + void operator()(Arg result) { + (receiver->*memberFun)(result); + } +}; + +template +InvokeWrapper invoke(R* receiver, void (C::*memberFun)(Arg)) +{ + InvokeWrapper wrapper = {receiver, memberFun}; + return wrapper; +} + SearchToolBar::SearchToolBar(WebView* view, QWidget* parent) : AnimatedWidget(AnimatedWidget::Up, 300, parent) , ui(new Ui::SearchToolbar) @@ -33,16 +49,15 @@ SearchToolBar::SearchToolBar(WebView* view, QWidget* parent) setAttribute(Qt::WA_DeleteOnClose); ui->setupUi(widget()); - ui->closeButton->setIcon(IconProvider::standardIcon(QStyle::SP_DialogCloseButton)); - ui->next->setIcon(IconProvider::standardIcon(QStyle::SP_ArrowDown)); - ui->previous->setIcon(IconProvider::standardIcon(QStyle::SP_ArrowUp)); + ui->closeButton->setIcon(IconProvider::instance()->standardIcon(QStyle::SP_DialogCloseButton)); + ui->next->setIcon(IconProvider::instance()->standardIcon(QStyle::SP_ArrowDown)); + ui->previous->setIcon(IconProvider::instance()->standardIcon(QStyle::SP_ArrowUp)); connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(hide())); connect(ui->lineEdit, SIGNAL(textChanged(QString)), this, SLOT(findNext())); connect(ui->lineEdit, SIGNAL(returnPressed()), this, SLOT(findNext())); connect(ui->next, SIGNAL(clicked()), this, SLOT(findNext())); connect(ui->previous, SIGNAL(clicked()), this, SLOT(findPrevious())); - connect(ui->highligh, SIGNAL(clicked()), this, SLOT(highlightChanged())); connect(ui->caseSensitive, SIGNAL(clicked()), this, SLOT(caseSensitivityChanged())); startAnimation(); @@ -63,7 +78,6 @@ void SearchToolBar::setWebView(WebView* view) void SearchToolBar::showMinimalInPopupWindow() { // Show only essentials widget + set minimum width - ui->highligh->hide(); ui->caseSensitive->hide(); ui->results->hide(); ui->horizontalLayout->setSpacing(2); @@ -86,7 +100,7 @@ void SearchToolBar::hide() void SearchToolBar::findNext() { - m_findFlags = QWebPage::FindWrapsAroundDocument; + m_findFlags = 0; updateFindFlags(); searchText(ui->lineEdit->text()); @@ -94,7 +108,7 @@ void SearchToolBar::findNext() void SearchToolBar::findPrevious() { - m_findFlags = QWebPage::FindBackward | QWebPage::FindWrapsAroundDocument; + m_findFlags = QWebEnginePage::FindBackward; updateFindFlags(); searchText(ui->lineEdit->text()); @@ -103,20 +117,10 @@ void SearchToolBar::findPrevious() void SearchToolBar::updateFindFlags() { if (ui->caseSensitive->isChecked()) { - m_findFlags = m_findFlags | QWebPage::FindCaseSensitively; + m_findFlags = m_findFlags | QWebEnginePage::FindCaseSensitively; } else { - m_findFlags = m_findFlags & ~QWebPage::FindCaseSensitively; - } -} - -void SearchToolBar::highlightChanged() -{ - if (ui->highligh->isChecked()) { - m_view->findText(ui->lineEdit->text(), m_findFlags | QWebPage::HighlightAllOccurrences); - } - else { - m_view->findText(QString(), QWebPage::HighlightAllOccurrences); + m_findFlags = m_findFlags & ~QWebEnginePage::FindCaseSensitively; } } @@ -129,24 +133,15 @@ void SearchToolBar::caseSensitivityChanged() void SearchToolBar::searchText(const QString &text) { - // Clear highlighting on page - m_view->findText(QString(), QWebPage::HighlightAllOccurrences); + m_view->findText(text, m_findFlags, invoke(this, &SearchToolBar::handleSearchResult)); +} - bool found = m_view->findText(text, m_findFlags); - - if (text.isEmpty()) { +void SearchToolBar::handleSearchResult(bool found) +{ + if (ui->lineEdit->text().isEmpty()) { found = true; } - if (ui->highligh->isChecked()) { - m_findFlags = QWebPage::HighlightAllOccurrences; - updateFindFlags(); - m_view->findText(text, m_findFlags); - } - else { - m_view->findText(QString(), QWebPage::HighlightAllOccurrences); - } - if (!found) { ui->results->setText(tr("No results found.")); } diff --git a/src/lib/webtab/searchtoolbar.h b/src/lib/webtab/searchtoolbar.h index 824ef3dce..11cb23ab1 100644 --- a/src/lib/webtab/searchtoolbar.h +++ b/src/lib/webtab/searchtoolbar.h @@ -1,6 +1,6 @@ /* ============================================================ * QupZilla - WebKit based browser -* Copyright (C) 2010-2014 David Rosca +* Copyright (C) 2010-2013 David Rosca * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,7 +18,7 @@ #ifndef SEARCHTOOLBAR_H #define SEARCHTOOLBAR_H -#include +#include #include "qzcommon.h" #include "animatedwidget.h" @@ -51,7 +51,6 @@ signals: public slots: void searchText(const QString &text); void updateFindFlags(); - void highlightChanged(); void caseSensitivityChanged(); void findNext(); @@ -60,10 +59,11 @@ public slots: void hide(); private: + void handleSearchResult(bool found); Ui::SearchToolbar* ui; WebView* m_view; - QWebPage::FindFlags m_findFlags; + QWebEnginePage::FindFlags m_findFlags; }; #endif // SEARCHTOOLBAR_H diff --git a/src/lib/webtab/tabbedwebview.cpp b/src/lib/webtab/tabbedwebview.cpp index f79184d1a..09e8bf809 100644 --- a/src/lib/webtab/tabbedwebview.cpp +++ b/src/lib/webtab/tabbedwebview.cpp @@ -35,7 +35,6 @@ #include #include #include -#include #include TabbedWebView::TabbedWebView(WebTab* webTab) @@ -58,7 +57,9 @@ void TabbedWebView::setWebPage(WebPage* page) page->setParent(this); setPage(page); +#if QTWEBENGINE_DISABLED connect(page, SIGNAL(linkHovered(QString,QString,QString)), this, SLOT(linkHovered(QString,QString,QString))); +#endif } BrowserWindow* TabbedWebView::browserWindow() const @@ -68,21 +69,27 @@ BrowserWindow* TabbedWebView::browserWindow() const void TabbedWebView::setBrowserWindow(BrowserWindow* window) { +#if QTWEBENGINE_DISABLED if (m_window) { disconnect(this, SIGNAL(statusBarMessage(QString)), m_window->statusBar(), SLOT(showMessage(QString))); } +#endif m_window = window; +#if QTWEBENGINE_DISABLED if (m_window) { connect(this, SIGNAL(statusBarMessage(QString)), m_window->statusBar(), SLOT(showMessage(QString))); } +#endif } void TabbedWebView::inspectElement() { +#if QTWEBENGINE_DISABLED m_webTab->showWebInspector(); - triggerPageAction(QWebPage::InspectElement); + triggerPageAction(QWebEnginePage::InspectElement); +#endif } WebTab* TabbedWebView::webTab() const @@ -186,6 +193,7 @@ void TabbedWebView::contextMenuEvent(QContextMenuEvent* event) { m_menu->clear(); +#if QTWEBENGINE_DISABLED const QWebHitTestResult hitTest = page()->mainFrame()->hitTestContent(event->pos()); createContextMenu(m_menu, hitTest, event->pos()); @@ -205,6 +213,7 @@ void TabbedWebView::contextMenuEvent(QContextMenuEvent* event) m_menu->popup(p); return; } +#endif WebView::contextMenuEvent(event); } diff --git a/src/lib/webtab/webtab.cpp b/src/lib/webtab/webtab.cpp index 298c56bf2..78bfadb83 100644 --- a/src/lib/webtab/webtab.cpp +++ b/src/lib/webtab/webtab.cpp @@ -29,8 +29,7 @@ #include "mainapplication.h" #include -#include -#include +#include #include #include #include @@ -131,6 +130,7 @@ TabbedWebView* WebTab::webView() const void WebTab::showWebInspector() { +#if QTWEBENGINE_DISABLED if (!m_inspector) { m_inspector = new WebInspector(this); m_inspector->setPage(m_webView->page()); @@ -138,6 +138,7 @@ void WebTab::showWebInspector() } m_inspector->show(); +#endif } QUrl WebTab::url() const @@ -170,7 +171,7 @@ QIcon WebTab::icon() const } } -QWebHistory* WebTab::history() const +QWebEngineHistory* WebTab::history() const { return m_webView->history(); } @@ -306,6 +307,7 @@ void WebTab::p_restoreTab(const WebTab::SavedTab &tab) QPixmap WebTab::renderTabPreview() { +#if QTWEBENGINE_DISABLED WebPage* page = m_webView->page(); const QSize oldSize = page->viewportSize(); const QPoint originalScrollPosition = page->mainFrame()->scrollPosition(); @@ -341,6 +343,13 @@ QPixmap WebTab::renderTabPreview() page->mainFrame()->setScrollBarValue(Qt::Horizontal, originalScrollPosition.x()); return pageImage.scaled(previewWidth, previewHeight, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); +#else + const int previewWidth = 230; + const int previewHeight = 150; + + QPixmap p = m_webView->grab(); + return p.scaled(previewWidth, previewHeight, Qt::KeepAspectRatioByExpanding); +#endif } void WebTab::showNotification(QWidget* notif) diff --git a/src/lib/webtab/webtab.h b/src/lib/webtab/webtab.h index 48d9f9237..4802f8e99 100644 --- a/src/lib/webtab/webtab.h +++ b/src/lib/webtab/webtab.h @@ -25,7 +25,7 @@ #include "qzcommon.h" class QVBoxLayout; -class QWebHistory; +class QWebEngineHistory; class QSplitter; class BrowserWindow; @@ -64,7 +64,7 @@ public: QUrl url() const; QString title() const; QIcon icon() const; - QWebHistory* history() const; + QWebEngineHistory* history() const; void detach(); void attach(BrowserWindow* window); diff --git a/src/main/main.cpp b/src/main/main.cpp index 070d42efd..bad4c0195 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -31,11 +31,13 @@ #include #if QT_VERSION >= 0x050000 -#include +#include #else #include "qwebkitversion.h" #endif +#include + void qupzilla_signal_handler(int s) { if (s != SIGSEGV) { @@ -86,7 +88,11 @@ void qupzilla_signal_handler(int s) stream << "Time: " << currentDateTime.toString() << endl; stream << "Qt version: " << qVersion() << " (compiled with " << QT_VERSION_STR << ")" << endl; stream << "QupZilla version: " << Qz::VERSION << endl; +#if QTWEBENGINE_DISABLED stream << "WebKit version: " << qWebKitVersion() << endl; +#else + stream << "WebKit version: QtWebEngine" << endl; +#endif stream << endl; stream << "============== BACKTRACE ==============" << endl; diff --git a/src/main/main.pro b/src/main/main.pro index 39bb5d005..9f1905dfa 100644 --- a/src/main/main.pro +++ b/src/main/main.pro @@ -1,7 +1,7 @@ include(../defines.pri) isEqual(QT_MAJOR_VERSION, 5) { - QT += webkitwidgets network widgets printsupport sql script + QT += webengine webenginewidgets network widgets printsupport sql script } else { QT += core gui webkit sql network script }