From 8daefcfd8e1bf41ae4d06c7a79a526b81a78dc58 Mon Sep 17 00:00:00 2001
From: Sona Kurazyan <sona.kurazyan@qt.io>
Date: Wed, 3 Jul 2019 15:01:35 +0200
Subject: [PATCH] Remove usages of deprecated APIs

- Replaced the following deprecated APIs:

  QWebEngineProfile::setRequestInterceptor -> QWebEngineProfile::setUrlRequestInterceptor
  QWebEngineSettings::globalSettings -> WebEngineSettings::defaultSettings
  QLayout::setMargin -> QLayout::setContentsMargins
  QWheelEvent::{x, y} -> QWheelEvent::position
  QWheelEvent::{globalX, globalY} -> QWheelEvent::globalPosition
  QSysInfo::windowsVersion -> QOperatingSystemVersion::current
  Qt::InputMethodQuery::ImMicroFocus -> Qt::InputMethodQuery::ImCursorRectangle
  QDesktopWidget::screenGeometry -> QGuiApplication::primaryScreen::geometry
  QTime -> QElapsedTimer

- Fixed the tests to compile when deprecated APIs are disabled.

- Replaced the doc references to deprecated APIs with the new ones.
  Made the docs for deprecated APIs compile conditionally, based on
  deprecation version.

Task-number: QTBUG-76491
Change-Id: I5c6b7c628957deb9163f0bd2b6bc31bde1c7daec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
 .../simplebrowser/browserwindow.cpp           |  2 +-
 .../simplebrowser/downloadwidget.cpp          |  3 ++-
 .../simplebrowser/downloadwidget.h            |  4 +--
 .../simplebrowser/webpopupwindow.cpp          |  2 +-
 src/core/web_event_factory.cpp                | 14 +++++++++++
 src/process/support_win.cpp                   |  3 ++-
 .../api/qwebengineprofile.cpp                 |  2 +-
 .../doc/src/qwebenginepage_lgpl.qdoc          |  2 +-
 .../doc/src/qwebenginesettings_lgpl.qdoc      |  2 ++
 .../doc/src/qwebengineview_lgpl.qdoc          |  2 +-
 .../tst_qwebengineprofile.cpp                 |  2 +-
 .../tst_qwebenginesettings.cpp                |  2 +-
 .../qwebengineview/tst_qwebengineview.cpp     | 25 +++++++++++++++----
 tests/manual/widgets/webgl/main.cpp           |  6 ++---
 14 files changed, 52 insertions(+), 19 deletions(-)

diff --git a/examples/webenginewidgets/simplebrowser/browserwindow.cpp b/examples/webenginewidgets/simplebrowser/browserwindow.cpp
index 2bb9045b0..7b167ded7 100644
--- a/examples/webenginewidgets/simplebrowser/browserwindow.cpp
+++ b/examples/webenginewidgets/simplebrowser/browserwindow.cpp
@@ -100,7 +100,7 @@ BrowserWindow::BrowserWindow(Browser *browser, QWebEngineProfile *profile, bool
     QWidget *centralWidget = new QWidget(this);
     QVBoxLayout *layout = new QVBoxLayout;
     layout->setSpacing(0);
-    layout->setMargin(0);
+    layout->setContentsMargins(0, 0, 0, 0);
     if (!forDevTools) {
         addToolBarBreak();
 
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.cpp b/examples/webenginewidgets/simplebrowser/downloadwidget.cpp
index 835a901c6..ddddc5e5d 100644
--- a/examples/webenginewidgets/simplebrowser/downloadwidget.cpp
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.cpp
@@ -57,8 +57,9 @@
 DownloadWidget::DownloadWidget(QWebEngineDownloadItem *download, QWidget *parent)
     : QFrame(parent)
     , m_download(download)
-    , m_timeAdded(QTime::currentTime())
+    , m_timeAdded()
 {
+    m_timeAdded.start();
     setupUi(this);
     m_dstName->setText(m_download->downloadFileName());
     m_srcUrl->setText(m_download->url().toDisplayString());
diff --git a/examples/webenginewidgets/simplebrowser/downloadwidget.h b/examples/webenginewidgets/simplebrowser/downloadwidget.h
index c08b298bc..c20676aa6 100644
--- a/examples/webenginewidgets/simplebrowser/downloadwidget.h
+++ b/examples/webenginewidgets/simplebrowser/downloadwidget.h
@@ -54,7 +54,7 @@
 #include "ui_downloadwidget.h"
 
 #include <QFrame>
-#include <QTime>
+#include <QElapsedTimer>
 
 QT_BEGIN_NAMESPACE
 class QWebEngineDownloadItem;
@@ -80,7 +80,7 @@ private:
     QString withUnit(qreal bytes);
 
     QWebEngineDownloadItem *m_download;
-    QTime m_timeAdded;
+    QElapsedTimer m_timeAdded;
 };
 
 #endif // DOWNLOADWIDGET_H
diff --git a/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp b/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp
index 19e3b0124..566723e1f 100644
--- a/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp
+++ b/examples/webenginewidgets/simplebrowser/webpopupwindow.cpp
@@ -66,7 +66,7 @@ WebPopupWindow::WebPopupWindow(QWebEngineProfile *profile)
     setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
 
     QVBoxLayout *layout = new QVBoxLayout;
-    layout->setMargin(0);
+    layout->setContentsMargins(0, 0, 0, 0);
     setLayout(layout);
     layout->addWidget(m_urlLineEdit);
     layout->addWidget(m_view);
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp
index 1b0723cb5..7f5306e67 100644
--- a/src/core/web_event_factory.cpp
+++ b/src/core/web_event_factory.cpp
@@ -1490,8 +1490,15 @@ blink::WebMouseWheelEvent WebEventFactory::toWebWheelEvent(QWheelEvent *ev)
     webEvent.SetType(webEventTypeForEvent(ev));
     webEvent.SetModifiers(modifiersForEvent(ev));
     webEvent.SetTimeStamp(base::TimeTicks::Now());
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
     webEvent.SetPositionInWidget(ev->x(), ev->y());
     webEvent.SetPositionInScreen(ev->globalX(), ev->globalY());
+#else
+    webEvent.SetPositionInWidget(static_cast<float>(ev->position().x()),
+                                 static_cast<float>(ev->position().y()));
+    webEvent.SetPositionInScreen(static_cast<float>(ev->globalPosition().x()),
+                                 static_cast<float>(ev->globalPosition().y()));
+#endif
 
     webEvent.wheel_ticks_x = static_cast<float>(ev->angleDelta().x()) / QWheelEvent::DefaultDeltasPerStep;
     webEvent.wheel_ticks_y = static_cast<float>(ev->angleDelta().y()) / QWheelEvent::DefaultDeltasPerStep;
@@ -1520,8 +1527,15 @@ bool WebEventFactory::coalesceWebWheelEvent(blink::WebMouseWheelEvent &webEvent,
 #endif
 
     webEvent.SetTimeStamp(base::TimeTicks::Now());
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
     webEvent.SetPositionInWidget(ev->x(), ev->y());
     webEvent.SetPositionInScreen(ev->globalX(), ev->globalY());
+#else
+    webEvent.SetPositionInWidget(static_cast<float>(ev->position().x()),
+                                 static_cast<float>(ev->position().y()));
+    webEvent.SetPositionInScreen(static_cast<float>(ev->globalPosition().x()),
+                                 static_cast<float>(ev->globalPosition().y()));
+#endif
 
     webEvent.wheel_ticks_x += static_cast<float>(ev->angleDelta().x()) / QWheelEvent::DefaultDeltasPerStep;
     webEvent.wheel_ticks_y += static_cast<float>(ev->angleDelta().y()) / QWheelEvent::DefaultDeltasPerStep;
diff --git a/src/process/support_win.cpp b/src/process/support_win.cpp
index 21481ce08..3d0ef37bf 100644
--- a/src/process/support_win.cpp
+++ b/src/process/support_win.cpp
@@ -38,6 +38,7 @@
 ****************************************************************************/
 
 #include <qlibrary.h>
+#include <qoperatingsystemversion.h>
 #include <qsysinfo.h>
 #include <qt_windows.h>
 #include <Tlhelp32.h>
@@ -80,7 +81,7 @@ public:
     ShcoreDLL()
         : getProcessDpiAwareness(0), setProcessDpiAwareness(0)
     {
-        if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS8_1)
+        if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows8_1)
             return;
         library.setFileName(QStringLiteral("SHCore"));
         if (!library.load())
diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp
index 6e2db533e..4a77eb8cf 100644
--- a/src/webenginewidgets/api/qwebengineprofile.cpp
+++ b/src/webenginewidgets/api/qwebengineprofile.cpp
@@ -101,7 +101,7 @@ using QtWebEngineCore::ProfileAdapter;
     web pages not specifically created with another profile belong to.
 
     Implementing the QWebEngineUrlRequestInterceptor interface and registering the interceptor on a
-    profile by setRequestInterceptor() enables intercepting, blocking, and modifying URL
+    profile by setUrlRequestInterceptor() enables intercepting, blocking, and modifying URL
     requests (QWebEngineUrlRequestInfo) before they reach the networking stack of Chromium.
 
     A QWebEngineUrlSchemeHandler can be registered for a profile by installUrlSchemeHandler()
diff --git a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
index 5536c0058..699d7f181 100644
--- a/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginepage_lgpl.qdoc
@@ -510,7 +510,7 @@
     \fn QWebEngineSettings *QWebEnginePage::settings() const
     Returns a pointer to the page's settings object.
 
-    \sa QWebEngineSettings::globalSettings()
+    \sa QWebEngineSettings::defaultSettings()
 */
 
 /*!
diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
index ce75a4203..0706598ef 100644
--- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc
@@ -22,12 +22,14 @@
 // by its LGPL license. Documentation written from scratch for new methods should be
 // placed inline in the code as usual.
 
+#if QT_DEPRECATED_SINCE(5, 5)
 /*!
     \fn static QWebEngineSettings *QWebEngineSettings::globalSettings()
     \obsolete
 
     Use defaultSettings() instead.
 */
+#endif
 
 /*!
     \class QWebEngineSettings
diff --git a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
index 1b7812dff..3f1b6e509 100644
--- a/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
+++ b/src/webenginewidgets/doc/src/qwebengineview_lgpl.qdoc
@@ -393,5 +393,5 @@
 
     \snippet qtwebengine_qwebengineview_snippet.cpp 6
 
-    \sa QWebEngineSettings::globalSettings()
+    \sa QWebEngineSettings::defaultSettings()
 */
diff --git a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
index 0fc494a36..25afa5849 100644
--- a/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
+++ b/tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
@@ -526,7 +526,7 @@ void tst_QWebEngineProfile::urlSchemeHandlerRequestHeaders()
 
     QWebEngineProfile profile;
     profile.installUrlSchemeHandler("myscheme", &handler);
-    profile.setRequestInterceptor(&interceptor);
+    profile.setUrlRequestInterceptor(&interceptor);
 
     QWebEnginePage page(&profile);
     QSignalSpy loadFinishedSpy(&page, SIGNAL(loadFinished(bool)));
diff --git a/tests/auto/widgets/qwebenginesettings/tst_qwebenginesettings.cpp b/tests/auto/widgets/qwebenginesettings/tst_qwebenginesettings.cpp
index 0704cf383..b4061b984 100644
--- a/tests/auto/widgets/qwebenginesettings/tst_qwebenginesettings.cpp
+++ b/tests/auto/widgets/qwebenginesettings/tst_qwebenginesettings.cpp
@@ -177,7 +177,7 @@ void tst_QWebEngineSettings::setInAcceptNavigationRequest()
 {
     NavigationRequestOverride page;
     QSignalSpy loadFinishedSpy(&page, SIGNAL(loadFinished(bool)));
-    QWebEngineSettings::globalSettings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false);
+    QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false);
     QVERIFY(!page.settings()->testAttribute(QWebEngineSettings::JavascriptEnabled));
 
     page.load(QUrl("about:blank"));
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
index fa179f2f8..827ac2757 100644
--- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
+++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp
@@ -237,30 +237,45 @@ void tst_QWebEngineView::renderHints()
     QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
     QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
     QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+#if QT_DEPRECATED_SINCE(5, 14)
     QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+#endif
+    QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
 
     webView.setRenderHint(QPainter::Antialiasing, true);
     QVERIFY(webView.renderHints() & QPainter::Antialiasing);
     QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
     QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+#if QT_DEPRECATED_SINCE(5, 14)
     QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+#endif
+    QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
 
     webView.setRenderHint(QPainter::Antialiasing, false);
     QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
     QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
     QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+#if QT_DEPRECATED_SINCE(5, 14)
     QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+#endif
+    QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
 
     webView.setRenderHint(QPainter::SmoothPixmapTransform, true);
     QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
     QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
     QVERIFY(webView.renderHints() & QPainter::SmoothPixmapTransform);
+#if QT_DEPRECATED_SINCE(5, 14)
     QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+#endif
+    QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
 
     webView.setRenderHint(QPainter::SmoothPixmapTransform, false);
     QVERIFY(webView.renderHints() & QPainter::TextAntialiasing);
     QVERIFY(!(webView.renderHints() & QPainter::SmoothPixmapTransform));
+#if QT_DEPRECATED_SINCE(5, 14)
     QVERIFY(!(webView.renderHints() & QPainter::HighQualityAntialiasing));
+#endif
+    QVERIFY(!(webView.renderHints() & QPainter::Antialiasing));
 #endif
 }
 
@@ -480,14 +495,14 @@ void tst_QWebEngineView::microFocusCoordinates()
     evaluateJavaScriptSync(webView.page(), "document.getElementById('input1').focus()");
     QTRY_COMPARE(evaluateJavaScriptSync(webView.page(), "document.activeElement.id").toString(), QStringLiteral("input1"));
 
-    QTRY_VERIFY(webView.focusProxy()->inputMethodQuery(Qt::ImMicroFocus).isValid());
-    QVariant initialMicroFocus = webView.focusProxy()->inputMethodQuery(Qt::ImMicroFocus);
+    QTRY_VERIFY(webView.focusProxy()->inputMethodQuery(Qt::ImCursorRectangle).isValid());
+    QVariant initialMicroFocus = webView.focusProxy()->inputMethodQuery(Qt::ImCursorRectangle);
 
     evaluateJavaScriptSync(webView.page(), "window.scrollBy(0, 50)");
     QTRY_VERIFY(scrollSpy.count() > 0);
 
-    QTRY_VERIFY(webView.focusProxy()->inputMethodQuery(Qt::ImMicroFocus).isValid());
-    QVariant currentMicroFocus = webView.focusProxy()->inputMethodQuery(Qt::ImMicroFocus);
+    QTRY_VERIFY(webView.focusProxy()->inputMethodQuery(Qt::ImCursorRectangle).isValid());
+    QVariant currentMicroFocus = webView.focusProxy()->inputMethodQuery(Qt::ImCursorRectangle);
 
     QCOMPARE(initialMicroFocus.toRect().translated(QPoint(0,-50)), currentMicroFocus.toRect());
 }
@@ -2989,7 +3004,7 @@ void tst_QWebEngineView::mouseLeave()
     QVBoxLayout *layout = new QVBoxLayout;
     layout->setAlignment(Qt::AlignTop);
     layout->setSpacing(0);
-    layout->setMargin(0);
+    layout->setContentsMargins(0, 0, 0, 0);
     layout->addWidget(label);
     layout->addWidget(view);
     containerWidget->setLayout(layout);
diff --git a/tests/manual/widgets/webgl/main.cpp b/tests/manual/widgets/webgl/main.cpp
index 364eda8b9..c18a15bac 100644
--- a/tests/manual/widgets/webgl/main.cpp
+++ b/tests/manual/widgets/webgl/main.cpp
@@ -30,9 +30,9 @@
 #include <QtCore/QLoggingCategory>
 #include <QtCore/QOperatingSystemVersion>
 #include <QtGui/QOpenGLContext>
+#include <QtGui/QScreen>
 #include <QtGui/QSurfaceFormat>
 #include <QtWidgets/QApplication>
-#include <QtWidgets/QDesktopWidget>
 #include <QtWidgets/QGroupBox>
 #include <QtWidgets/QHBoxLayout>
 #include <QtWidgets/QMainWindow>
@@ -104,7 +104,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
 
 QSize MainWindow::sizeHint() const
 {
-    const QRect desktopRect = QApplication::desktop()->screenGeometry();
+    const QRect desktopRect = QGuiApplication::primaryScreen()->geometry();
     const QSize size = desktopRect.size() * qreal(0.9);
     return size;
 }
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
     MainWindow w;
 
     // Move middle-ish.
-    const QRect desktopRect = QApplication::desktop()->screenGeometry();
+    const QRect desktopRect = QGuiApplication::primaryScreen()->geometry();
     const QSize pos = desktopRect.size() * qreal(0.1);
     w.move(pos.width(), pos.height());
 
-- 
GitLab