From ad313595e0662fa2e91676feef65aad5b4525a86 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Sat, 30 Mar 2019 21:52:42 +0100 Subject: Revert "Revert "Remove deprecated screen maintenance functions in QPlatformIntegration"" This reverts commit 300940a6c9eb0f74cefda7d76a5d19f56ec50253. The fixes for leaf modules landed already. Task-number: QTBUG-74816 Change-Id: I1c7f0705c20d030419ceedca485106af73946b3c Reviewed-by: Jesus Fernandez --- src/gui/kernel/qplatformintegration.cpp | 38 ------------------------------- src/gui/kernel/qplatformintegration.h | 10 -------- src/gui/kernel/qplatformscreen.cpp | 4 ---- src/gui/kernel/qscreen.cpp | 20 ++++++++++------ src/gui/kernel/qwindowsysteminterface.cpp | 5 ---- 5 files changed, 13 insertions(+), 64 deletions(-) (limited to 'src/gui/kernel') diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index 6ae6e4a528..490cfc6178 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -462,44 +462,6 @@ QList QPlatformIntegration::possibleKeys(const QKeyEvent *) const return QList(); } -/*! - \deprecated Use QWindowSystemInterface::handleScreenAdded instead. -*/ -void QPlatformIntegration::screenAdded(QPlatformScreen *ps, bool isPrimary) -{ - QWindowSystemInterface::handleScreenAdded(ps, isPrimary); -} - -/*! - \deprecated Use QWindowSystemInterface::handleScreenRemoved instead. -*/ -void QPlatformIntegration::removeScreen(QScreen *screen) -{ - const bool wasPrimary = (!QGuiApplicationPrivate::screen_list.isEmpty() && QGuiApplicationPrivate::screen_list.at(0) == screen); - QGuiApplicationPrivate::screen_list.removeOne(screen); - - QGuiApplicationPrivate::resetCachedDevicePixelRatio(); - - if (wasPrimary && qGuiApp && !QGuiApplicationPrivate::screen_list.isEmpty()) - emit qGuiApp->primaryScreenChanged(QGuiApplicationPrivate::screen_list.at(0)); -} - -/*! - \deprecated Use QWindowSystemInterface::handleScreenRemoved instead. -*/ -void QPlatformIntegration::destroyScreen(QPlatformScreen *platformScreen) -{ - QWindowSystemInterface::handleScreenRemoved(platformScreen); -} - -/*! - \deprecated Use QWindowSystemInterface::handlePrimaryScreenChanged instead. -*/ -void QPlatformIntegration::setPrimaryScreen(QPlatformScreen *newPrimary) -{ - QWindowSystemInterface::handlePrimaryScreenChanged(newPrimary); -} - QStringList QPlatformIntegration::themeNames() const { return QStringList(); diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h index 048ea1139c..b764bd2617 100644 --- a/src/gui/kernel/qplatformintegration.h +++ b/src/gui/kernel/qplatformintegration.h @@ -192,10 +192,6 @@ public: #endif virtual void setApplicationIcon(const QIcon &icon) const; -#if QT_DEPRECATED_SINCE(5, 12) - QT_DEPRECATED_X("Use QWindowSystemInterface::handleScreenRemoved") void removeScreen(QScreen *screen); -#endif - virtual void beep() const; #if QT_CONFIG(vulkan) || defined(Q_CLANG_QDOC) @@ -204,12 +200,6 @@ public: protected: QPlatformIntegration() = default; - -#if QT_DEPRECATED_SINCE(5, 12) - QT_DEPRECATED_X("Use QWindowSystemInterface::handleScreenAdded") void screenAdded(QPlatformScreen *screen, bool isPrimary = false); - QT_DEPRECATED_X("Use QWindowSystemInterface::handleScreenRemoved") void destroyScreen(QPlatformScreen *screen); - QT_DEPRECATED_X("Use QWindowSystemInterface::handlePrimaryScreenChanged") void setPrimaryScreen(QPlatformScreen *newPrimary); -#endif }; QT_END_NAMESPACE diff --git a/src/gui/kernel/qplatformscreen.cpp b/src/gui/kernel/qplatformscreen.cpp index 21ae75ba8f..9c5876550a 100644 --- a/src/gui/kernel/qplatformscreen.cpp +++ b/src/gui/kernel/qplatformscreen.cpp @@ -62,10 +62,6 @@ QPlatformScreen::~QPlatformScreen() Q_D(QPlatformScreen); if (d->screen) { qWarning("Manually deleting a QPlatformScreen. Call QWindowSystemInterface::handleScreenRemoved instead."); -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - QGuiApplicationPrivate::platformIntegration()->removeScreen(d->screen); -QT_WARNING_POP delete d->screen; } } diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp index f208eb02be..952023dd1b 100644 --- a/src/gui/kernel/qscreen.cpp +++ b/src/gui/kernel/qscreen.cpp @@ -106,9 +106,18 @@ void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen) */ QScreen::~QScreen() { - if (!qApp) + // Remove screen + const bool wasPrimary = QGuiApplication::primaryScreen() == this; + QGuiApplicationPrivate::screen_list.removeOne(this); + QGuiApplicationPrivate::resetCachedDevicePixelRatio(); + + if (!qGuiApp) return; + QScreen *newPrimaryScreen = QGuiApplication::primaryScreen(); + if (wasPrimary && newPrimaryScreen) + emit qGuiApp->primaryScreenChanged(newPrimaryScreen); + // Allow clients to manage windows that are affected by the screen going // away, before we fall back to moving them to the primary screen. emit qApp->screenRemoved(this); @@ -116,11 +125,8 @@ QScreen::~QScreen() if (QGuiApplication::closingDown()) return; - QScreen *primaryScreen = QGuiApplication::primaryScreen(); - if (this == primaryScreen) - return; - - bool movingFromVirtualSibling = primaryScreen && primaryScreen->handle()->virtualSiblings().contains(handle()); + bool movingFromVirtualSibling = newPrimaryScreen + && newPrimaryScreen->handle()->virtualSiblings().contains(handle()); // Move any leftover windows to the primary screen const auto allWindows = QGuiApplication::allWindows(); @@ -129,7 +135,7 @@ QScreen::~QScreen() continue; const bool wasVisible = window->isVisible(); - window->setScreen(primaryScreen); + window->setScreen(newPrimaryScreen); // Re-show window if moved from a virtual sibling screen. Otherwise // leave it up to the application developer to show the window. diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp index 2b40b2d4d0..6f3edb10b4 100644 --- a/src/gui/kernel/qwindowsysteminterface.cpp +++ b/src/gui/kernel/qwindowsysteminterface.cpp @@ -818,11 +818,6 @@ void QWindowSystemInterface::handleScreenAdded(QPlatformScreen *ps, bool isPrima */ void QWindowSystemInterface::handleScreenRemoved(QPlatformScreen *platformScreen) { -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED - QGuiApplicationPrivate::platformIntegration()->removeScreen(platformScreen->screen()); -QT_WARNING_POP - // Important to keep this order since the QSceen doesn't own the platform screen delete platformScreen->screen(); delete platformScreen; -- cgit v1.2.3