From 664798ee6eeb11758d4e631d6d18ff5aa58c4fab Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Wed, 13 Apr 2022 22:28:04 +0100 Subject: [PATCH] tests: Remove some asQWidget() calls --- src/Platform.h | 1 + src/qtcommon/Platform_qt.cpp | 6 ++++++ src/qtcommon/Platform_qt.h | 1 + tests/tst_docks.cpp | 30 +++++++++++++++--------------- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/Platform.h b/src/Platform.h index c623bde9..dc05b5d2 100644 --- a/src/Platform.h +++ b/src/Platform.h @@ -70,6 +70,7 @@ public: /// Returns true if the view received said event until timeout was reached virtual bool tests_waitForEvent(QObject *w, QEvent::Type type, int timeout = 5000) const = 0; virtual bool tests_waitForEvent(View *, QEvent::Type type, int timeout = 5000) const = 0; + virtual bool tests_waitForEvent(std::shared_ptr, QEvent::Type type, int timeout = 5000) const = 0; #endif diff --git a/src/qtcommon/Platform_qt.cpp b/src/qtcommon/Platform_qt.cpp index 09917386..76610dca 100644 --- a/src/qtcommon/Platform_qt.cpp +++ b/src/qtcommon/Platform_qt.cpp @@ -121,4 +121,10 @@ bool Platform_qt::tests_waitForResize(Controller *c, int timeout) const return tests_waitForResize(c->view(), timeout); } +bool Platform_qt::tests_waitForEvent(std::shared_ptr window, QEvent::Type type, int timeout) const +{ + auto windowqt = static_cast(window.get()); + return tests_waitForEvent(windowqt->qtWindow(), type, timeout); +} + #endif diff --git a/src/qtcommon/Platform_qt.h b/src/qtcommon/Platform_qt.h index 75427fab..db9badd8 100644 --- a/src/qtcommon/Platform_qt.h +++ b/src/qtcommon/Platform_qt.h @@ -34,6 +34,7 @@ public: bool tests_waitForWindowActive(std::shared_ptr, int timeout = 5000) const override; bool tests_waitForEvent(QObject *w, QEvent::Type type, int timeout = 5000) const override; bool tests_waitForEvent(View *, QEvent::Type type, int timeout = 5000) const override; + bool tests_waitForEvent(std::shared_ptr, QEvent::Type type, int timeout = 5000) const override; bool tests_waitForResize(View *, int timeout = 2000) const override; bool tests_waitForResize(Controller *, int timeout = 2000) const override; #endif diff --git a/tests/tst_docks.cpp b/tests/tst_docks.cpp index 12a92917..f316a28a 100644 --- a/tests/tst_docks.cpp +++ b/tests/tst_docks.cpp @@ -186,7 +186,7 @@ void TestDocks::tst_restoreSimple() QVERIFY(dock2->isVisible()); QVERIFY(!dock3->isVisible()); // Remains closed - QVERIFY(dock3->view()->asQWidget()->parentWidget() == nullptr); + QVERIFY(dock3->view()->parentView() == nullptr); dock3->show(); dock3->dptr()->morphIntoFloatingWindow(); // as it would take 1 event loop. Do it now so we can @@ -2295,10 +2295,10 @@ void TestDocks::tst_closeAllDockWidgets() QVERIFY(oldFWHeight <= fw->height()); QCOMPARE(fw->frames().size(), 2); - QCOMPARE(dock3->window()->asQWidget(), fw->view()->asQWidget()); - QCOMPARE(dock4->window()->asQWidget(), m->view()->asQWidget()); - QCOMPARE(dock5->window()->asQWidget(), m->view()->asQWidget()); - QCOMPARE(dock6->window()->asQWidget(), fw->view()->asQWidget()); + QVERIFY(dock3->window()->equals(fw->view())); + QVERIFY(dock4->window()->equals(m->view())); + QVERIFY(dock5->window()->equals(m->view())); + QVERIFY(dock6->window()->equals(fw->view())); auto layout = m->multiSplitter(); layout->checkSanity(); DockRegistry::self()->clear(); @@ -2307,12 +2307,12 @@ void TestDocks::tst_closeAllDockWidgets() Testing::waitForDeleted(fw); QVERIFY(!fw); - QCOMPARE(dock1->window()->asQWidget(), dock1->view()->asQWidget()); - QCOMPARE(dock2->window()->asQWidget(), dock2->view()->asQWidget()); - QCOMPARE(dock3->window()->asQWidget(), dock3->view()->asQWidget()); - QCOMPARE(dock4->window()->asQWidget(), dock4->view()->asQWidget()); - QCOMPARE(dock5->window()->asQWidget(), dock5->view()->asQWidget()); - QCOMPARE(dock6->window()->asQWidget(), dock6->view()->asQWidget()); + QVERIFY(dock1->window()->equals(dock1->view())); + QVERIFY(dock2->window()->equals(dock2->view())); + QVERIFY(dock3->window()->equals(dock3->view())); + QVERIFY(dock4->window()->equals(dock4->view())); + QVERIFY(dock5->window()->equals(dock5->view())); + QVERIFY(dock6->window()->equals(dock6->view())); QVERIFY(!dock1->isVisible()); QVERIFY(!dock2->isVisible()); @@ -2637,7 +2637,7 @@ void TestDocks::tst_dockWindowWithTwoSideBySideFramesIntoCenter() fw2->view()->move(fw->x() + fw->width() + 100, fw->y()); // QtQuick is a bit more async than QWidgets. Wait for the move. - Platform::instance()->tests_waitForEvent(fw2->view()->asQWidget()->windowHandle(), QEvent::Move); + Platform::instance()->tests_waitForEvent(fw2->view()->windowHandle(), QEvent::Move); auto da2 = fw2->dropArea(); const QPoint dragDestPos = da2->mapToGlobal(da2->QWidget::rect().center()); @@ -2732,7 +2732,7 @@ void TestDocks::tst_isFocused() // 3. Raise dock2 and focus its line edit dock2->view()->raiseAndActivate(); if (!dock2->window()->windowHandle()->isActive()) - Platform::instance()->tests_waitForEvent(dock2->window()->asQWidget()->windowHandle(), QEvent::WindowActivate); + Platform::instance()->tests_waitForEvent(dock2->view()->windowHandle(), QEvent::WindowActivate); dock2->widget()->setFocus(Qt::OtherFocusReason); Platform::instance()->tests_waitForEvent(dock2->widget(), QEvent::FocusIn); @@ -4775,7 +4775,7 @@ void TestDocks::tst_lastFloatingPositionIsRestored() dock1->window()->windowHandle()->setFramePosition(targetPos); QCOMPARE(dock1->window()->windowHandle()->frameGeometry().topLeft(), targetPos); auto oldFw = dock1->window(); - Platform::instance()->tests_waitForEvent(dock1->window()->asQWidget(), QEvent::Move); + Platform::instance()->tests_waitForEvent(dock1->window().get(), QEvent::Move); LayoutSaver saver; QByteArray saved = saver.serializeLayout(); @@ -5026,7 +5026,7 @@ void TestDocks::tst_mdi_mixed_with_docking() auto tb1 = mdiWidget1->titleBar(); QVERIFY(tb1->isMDI()); - QVERIFY(Platform::instance()->tests_waitForEvent(tb1->view()->asQWidget(), QEvent::Show)); + QVERIFY(Platform::instance()->tests_waitForEvent(tb1->view(), QEvent::Show)); QVERIFY(tb1->isVisible()); // Press the float button