Remove usages of deprecated APIs of QDesktopWidget
- Replaced the usages of the following deprecated APIs: * QDesktopWidget::screenCount() -> QGuiApplication::screens().size() * QDesktopWidget::screenGeometry(int) -> QGuiApplication::screens().at() * QDesktopWidget::screenNumber(QPoint) -> QGuiApplication::screenAt(QPoint) - Added notes for the QWidget *QDesktopWidget::screen(int), which currently has no replacement. - Fixed the tests to build conditionally, only when these APIs are enabled. Task-number: QTBUG-76491 Change-Id: I2fdec96d0a6a4fc782c53549b05a5556412b8305 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
a90899df43
commit
66a9c4b0b2
@ -211,7 +211,9 @@ QDesktopWidget::QDesktopWidget()
|
||||
setObjectName(QLatin1String("desktop"));
|
||||
d->_q_updateScreens();
|
||||
connect(qApp, SIGNAL(screenAdded(QScreen*)), this, SLOT(_q_updateScreens()));
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
connect(qApp, SIGNAL(primaryScreenChanged(QScreen*)), this, SIGNAL(primaryScreenChanged()));
|
||||
#endif
|
||||
}
|
||||
|
||||
QDesktopWidget::~QDesktopWidget()
|
||||
|
@ -99,7 +99,7 @@ static QAlphaWidget* q_blend = 0;
|
||||
Constructs a QAlphaWidget.
|
||||
*/
|
||||
QT_WARNING_PUSH
|
||||
QT_WARNING_DISABLE_DEPRECATED // QDesktopWidget::screen()
|
||||
QT_WARNING_DISABLE_DEPRECATED // ### Qt 6: Find a replacement for QDesktopWidget::screen()
|
||||
QAlphaWidget::QAlphaWidget(QWidget* w, Qt::WindowFlags f)
|
||||
: QWidget(QApplication::desktop()->screen(QDesktopWidgetPrivate::screenNumber(w)), f)
|
||||
{
|
||||
|
@ -42,10 +42,12 @@ class tst_QDesktopWidget : public QObject
|
||||
private slots:
|
||||
void cleanup();
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
void numScreens();
|
||||
void primaryScreen();
|
||||
void screenNumberForQWidget();
|
||||
void screenNumberForQPoint();
|
||||
#endif
|
||||
void screenNumberForQWidget();
|
||||
void availableGeometry();
|
||||
void screenGeometry();
|
||||
void topLevels();
|
||||
@ -56,6 +58,7 @@ void tst_QDesktopWidget::cleanup()
|
||||
QVERIFY(QApplication::topLevelWidgets().isEmpty());
|
||||
}
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
void tst_QDesktopWidget::numScreens()
|
||||
{
|
||||
QDesktopWidget desktop;
|
||||
@ -68,14 +71,17 @@ void tst_QDesktopWidget::primaryScreen()
|
||||
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");
|
||||
desktop.availableGeometry((QWidget *)0);
|
||||
QRect r = desktop.availableGeometry(nullptr);
|
||||
QVERIFY(r.isNull());
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
QRect total;
|
||||
QRect available;
|
||||
|
||||
@ -90,13 +96,14 @@ void tst_QDesktopWidget::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(0), 0);
|
||||
QCOMPARE(desktop.screenNumber(nullptr), 0);
|
||||
|
||||
QWidget widget;
|
||||
widget.show();
|
||||
@ -105,9 +112,10 @@ void tst_QDesktopWidget::screenNumberForQWidget()
|
||||
|
||||
int widgetScreen = desktop.screenNumber(&widget);
|
||||
QVERIFY(widgetScreen > -1);
|
||||
QVERIFY(widgetScreen < desktop.numScreens());
|
||||
QVERIFY(widgetScreen < QGuiApplication::screens().size());
|
||||
}
|
||||
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
void tst_QDesktopWidget::screenNumberForQPoint()
|
||||
{
|
||||
// make sure QDesktopWidget::screenNumber(QPoint) returns the correct screen
|
||||
@ -131,25 +139,28 @@ void tst_QDesktopWidget::screenNumberForQPoint()
|
||||
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((QWidget *)0);
|
||||
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()
|
||||
|
@ -356,15 +356,12 @@ int main(int argc, char *argv[])
|
||||
QApplication app(argc, argv);
|
||||
|
||||
MainWindowPtrList windows;
|
||||
|
||||
QDesktopWidget *desktopWidget = app.desktop();
|
||||
|
||||
const int lastScreen = arguments.contains("-p")
|
||||
? 0 // Primary screen only
|
||||
: desktopWidget->screenCount() - 1; // All screens
|
||||
: QGuiApplication::screens().size() - 1; // All screens
|
||||
for (int s = lastScreen; s >= 0; --s) {
|
||||
MainWindowPtr window(new MainWindow(desktopWidget->screen(s)));
|
||||
const QPoint pos = desktopWidget->screenGeometry(s).center() - QPoint(200, 100);
|
||||
MainWindowPtr window(new MainWindow());
|
||||
const QPoint pos = QGuiApplication::screens().at(s)->geometry().center() - QPoint(200, 100);
|
||||
window->move(pos);
|
||||
windows.append(window);
|
||||
window->show();
|
||||
|
@ -34,6 +34,7 @@
|
||||
|
||||
class DesktopView : public QGraphicsView
|
||||
{
|
||||
#if QT_DEPRECATED_SINCE(5, 11)
|
||||
Q_OBJECT
|
||||
public:
|
||||
DesktopView()
|
||||
@ -195,6 +196,7 @@ private:
|
||||
QGraphicsScene *scene;
|
||||
QGraphicsRectItem *that;
|
||||
QPoint thatRoot;
|
||||
#endif
|
||||
};
|
||||
|
||||
#include "main.moc"
|
||||
|
@ -61,8 +61,10 @@ public:
|
||||
QLatin1String("Left-click to test QGuiApplication::topLevelAt(click pos)\nRight-click to ungrab\n") :
|
||||
QLatin1String("Left-click to grab mouse\n");
|
||||
if (!m_cursorPos.isNull()) {
|
||||
const auto screen = QGuiApplication::screenAt(m_cursorPos);
|
||||
const auto screenNum = screen ? QGuiApplication::screens().indexOf(screen) : 0;
|
||||
txt += QString(QLatin1String("Current mouse position: %1, %2 on screen %3\n"))
|
||||
.arg(m_cursorPos.x()).arg(m_cursorPos.y()).arg(QApplication::desktop()->screenNumber(m_cursorPos));
|
||||
.arg(m_cursorPos.x()).arg(m_cursorPos.y()).arg(screenNum);
|
||||
if (QGuiApplication::mouseButtons() & Qt::LeftButton) {
|
||||
QWindow *win = QGuiApplication::topLevelAt(m_cursorPos);
|
||||
txt += QString(QLatin1String("Top-level window found? %1\n"))
|
||||
@ -234,6 +236,7 @@ void screenAdded(QScreen* screen)
|
||||
QList<QScreen *> screens = QGuiApplication::screens();
|
||||
int screenNumber = screens.indexOf(screen);
|
||||
Q_ASSERT(screenNumber >= 0);
|
||||
// ### Qt 6: Find a replacement for QDesktopWidget::screen()
|
||||
w->setParent(qApp->desktop()->screen(screenNumber));
|
||||
|
||||
w->show();
|
||||
|
Loading…
Reference in New Issue
Block a user