From 45cf8da63c419c27e7476f0a929e9d8ba664bfd3 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Thu, 14 May 2020 12:45:19 +0200 Subject: Reduce QDesktopWidget API to bare minimum MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The class is documented as obsolete, and the majority of APIs is marked as deprecated. In this first phase, remove all explicitly deprecated APIs and trivial implementations. The test case is complete removed; what's left when code that uses any of those deprecated methods is removed is not testing anything meaningful. For some methods, there is no practical replacement using QScreen yet, and QDesktopWidget is still used in QWidget internals. Those require refactoring to only use QScreen before the rest can be removed. Change-Id: I8f7c968ec566820077221d37b817843758d51d49 Reviewed-by: Tor Arne Vestbø --- tests/auto/widgets/kernel/CMakeLists.txt | 1 - tests/auto/widgets/kernel/kernel.pro | 1 - .../widgets/kernel/qdesktopwidget/CMakeLists.txt | 13 -- .../kernel/qdesktopwidget/qdesktopwidget.pro | 4 - .../kernel/qdesktopwidget/tst_qdesktopwidget.cpp | 183 --------------------- 5 files changed, 202 deletions(-) delete mode 100644 tests/auto/widgets/kernel/qdesktopwidget/CMakeLists.txt delete mode 100644 tests/auto/widgets/kernel/qdesktopwidget/qdesktopwidget.pro delete mode 100644 tests/auto/widgets/kernel/qdesktopwidget/tst_qdesktopwidget.cpp (limited to 'tests/auto/widgets') diff --git a/tests/auto/widgets/kernel/CMakeLists.txt b/tests/auto/widgets/kernel/CMakeLists.txt index 51759264b2..ec32603585 100644 --- a/tests/auto/widgets/kernel/CMakeLists.txt +++ b/tests/auto/widgets/kernel/CMakeLists.txt @@ -4,7 +4,6 @@ add_subdirectory(qaction) add_subdirectory(qactiongroup) add_subdirectory(qapplication) add_subdirectory(qboxlayout) -add_subdirectory(qdesktopwidget) add_subdirectory(qformlayout) add_subdirectory(qgridlayout) add_subdirectory(qlayout) diff --git a/tests/auto/widgets/kernel/kernel.pro b/tests/auto/widgets/kernel/kernel.pro index c66c1822b2..8fbaf948f2 100644 --- a/tests/auto/widgets/kernel/kernel.pro +++ b/tests/auto/widgets/kernel/kernel.pro @@ -2,7 +2,6 @@ TEMPLATE=subdirs SUBDIRS=\ qapplication \ qboxlayout \ - qdesktopwidget \ qformlayout \ qgesturerecognizer \ qgridlayout \ diff --git a/tests/auto/widgets/kernel/qdesktopwidget/CMakeLists.txt b/tests/auto/widgets/kernel/qdesktopwidget/CMakeLists.txt deleted file mode 100644 index 79790049fe..0000000000 --- a/tests/auto/widgets/kernel/qdesktopwidget/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# Generated from qdesktopwidget.pro. - -##################################################################### -## tst_qdesktopwidget Test: -##################################################################### - -add_qt_test(tst_qdesktopwidget - SOURCES - tst_qdesktopwidget.cpp - PUBLIC_LIBRARIES - Qt::Gui - Qt::Widgets -) diff --git a/tests/auto/widgets/kernel/qdesktopwidget/qdesktopwidget.pro b/tests/auto/widgets/kernel/qdesktopwidget/qdesktopwidget.pro deleted file mode 100644 index 1ab155f22e..0000000000 --- a/tests/auto/widgets/kernel/qdesktopwidget/qdesktopwidget.pro +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG += testcase -TARGET = tst_qdesktopwidget -QT += widgets testlib -SOURCES += tst_qdesktopwidget.cpp diff --git a/tests/auto/widgets/kernel/qdesktopwidget/tst_qdesktopwidget.cpp b/tests/auto/widgets/kernel/qdesktopwidget/tst_qdesktopwidget.cpp deleted file mode 100644 index a29e8408a3..0000000000 --- a/tests/auto/widgets/kernel/qdesktopwidget/tst_qdesktopwidget.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include -#include -#include -#include - -// the complete class is deprecated -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -class tst_QDesktopWidget : public QObject -{ - Q_OBJECT - -private slots: - void cleanup(); - -#if QT_DEPRECATED_SINCE(5, 11) - void numScreens(); - void primaryScreen(); - void screenNumberForQPoint(); -#endif - void screenNumberForQWidget(); - void availableGeometry(); - void screenGeometry(); - void topLevels(); -}; - -void tst_QDesktopWidget::cleanup() -{ - QVERIFY(QApplication::topLevelWidgets().isEmpty()); -} - -#if QT_DEPRECATED_SINCE(5, 11) -void tst_QDesktopWidget::numScreens() -{ - QDesktopWidget desktop; - QVERIFY(desktop.numScreens() > 0); -} - -void tst_QDesktopWidget::primaryScreen() -{ - QDesktopWidget desktop; - QVERIFY(desktop.primaryScreen() >= 0); - QVERIFY(desktop.primaryScreen() < desktop.numScreens()); -} -#endif - -void tst_QDesktopWidget::availableGeometry() -{ - QDesktopWidget desktop; - QTest::ignoreMessage(QtWarningMsg, "QDesktopWidget::availableGeometry(): Attempt " - "to get the available geometry of a null widget"); - QRect r = desktop.availableGeometry(nullptr); - QVERIFY(r.isNull()); - -#if QT_DEPRECATED_SINCE(5, 11) - QRect total; - QRect available; - - for (int i = 0; i < desktop.screenCount(); ++i) { - total = desktop.screenGeometry(i); - available = desktop.availableGeometry(i); - QVERIFY(total.contains(available)); - } - - total = desktop.screenGeometry(); - available = desktop.availableGeometry(); - QVERIFY(total.contains(available)); - QCOMPARE(desktop.availableGeometry(desktop.primaryScreen()), available); - QCOMPARE(desktop.screenGeometry(desktop.primaryScreen()), total); -#endif -} - -void tst_QDesktopWidget::screenNumberForQWidget() -{ - QDesktopWidget desktop; - - QCOMPARE(desktop.screenNumber(nullptr), 0); - - QWidget widget; - widget.show(); - QVERIFY(QTest::qWaitForWindowExposed(&widget)); - QVERIFY(widget.isVisible()); - - int widgetScreen = desktop.screenNumber(&widget); - QVERIFY(widgetScreen > -1); - QVERIFY(widgetScreen < QGuiApplication::screens().size()); -} - -#if QT_DEPRECATED_SINCE(5, 11) -void tst_QDesktopWidget::screenNumberForQPoint() -{ - // make sure QDesktopWidget::screenNumber(QPoint) returns the correct screen - QDesktopWidget *desktopWidget = QApplication::desktop(); - QRect allScreens; - for (int i = 0; i < desktopWidget->numScreens(); ++i) { - QRect screenGeometry = desktopWidget->screenGeometry(i); - QCOMPARE(desktopWidget->screenNumber(screenGeometry.center()), i); - allScreens |= screenGeometry; - } - - // make sure QDesktopWidget::screenNumber(QPoint) returns a valid screen for points that aren't on any screen - int screen; - screen = desktopWidget->screenNumber(allScreens.topLeft() - QPoint(1, 1)); - - QVERIFY(screen >= 0 && screen < desktopWidget->numScreens()); - screen = desktopWidget->screenNumber(allScreens.topRight() + QPoint(1, 1)); - QVERIFY(screen >= 0 && screen < desktopWidget->numScreens()); - screen = desktopWidget->screenNumber(allScreens.bottomLeft() - QPoint(1, 1)); - QVERIFY(screen >= 0 && screen < desktopWidget->numScreens()); - screen = desktopWidget->screenNumber(allScreens.bottomRight() + QPoint(1, 1)); - QVERIFY(screen >= 0 && screen < desktopWidget->numScreens()); -} -#endif - -void tst_QDesktopWidget::screenGeometry() -{ - QDesktopWidget *desktopWidget = QApplication::desktop(); - QTest::ignoreMessage(QtWarningMsg, "QDesktopWidget::screenGeometry(): Attempt " - "to get the screen geometry of a null widget"); - QRect r = desktopWidget->screenGeometry(nullptr); - QVERIFY(r.isNull()); - QWidget widget; - widget.show(); - QVERIFY(QTest::qWaitForWindowExposed(&widget)); - r = desktopWidget->screenGeometry(&widget); - -#if QT_DEPRECATED_SINCE(5, 11) - QRect total; - QRect available; - for (int i = 0; i < desktopWidget->screenCount(); ++i) { - total = desktopWidget->screenGeometry(i); - available = desktopWidget->availableGeometry(i); - } -#endif -} - -void tst_QDesktopWidget::topLevels() -{ - // Desktop widgets/windows should not be listed as top-levels. - int topLevelDesktopWidgets = 0; - int topLevelDesktopWindows = 0; - foreach (const QWidget *w, QApplication::topLevelWidgets()) - if (w->windowType() == Qt::Desktop) - topLevelDesktopWidgets++; - foreach (const QWindow *w, QGuiApplication::topLevelWindows()) - if (w->type() == Qt::Desktop) - topLevelDesktopWindows++; - QCOMPARE(topLevelDesktopWidgets, 0); - QCOMPARE(topLevelDesktopWindows, 0); -} -QT_WARNING_POP - -QTEST_MAIN(tst_QDesktopWidget) -#include "tst_qdesktopwidget.moc" -- cgit v1.2.3