diff options
author | Samuel Rødal <samuel.rodal@digia.com> | 2013-02-08 10:49:52 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-12 15:02:53 +0100 |
commit | 23b11e792cd0bd91afc026b103f55d450cc20fe2 (patch) | |
tree | 7e5350921467d267d61e1832c74e73ca77e7d316 /tests/auto/gui/kernel/qwindow | |
parent | fe6add818e2ab11fba3d9df12c29dfb29c65b2af (diff) |
Added QWindow::Visibility convenience API to QWindow.
This finally makes it possible to make windows fullscreen etc from
QML by doing "visibility: Window.FullScreen". I don't see any reason
from not having the API at the QWindow-level instead of at the
QQuickWindow-level since this way it can benefit other use cases too.
Change-Id: If27344306eb563bc2ccd83296a46b1f2862e2db1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'tests/auto/gui/kernel/qwindow')
-rw-r--r-- | tests/auto/gui/kernel/qwindow/tst_qwindow.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp index 8c5432e746..26301f712e 100644 --- a/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp +++ b/tests/auto/gui/kernel/qwindow/tst_qwindow.cpp @@ -49,6 +49,7 @@ // For QSignalSpy slot connections. Q_DECLARE_METATYPE(Qt::ScreenOrientation) +Q_DECLARE_METATYPE(QWindow::Visibility) class tst_QWindow: public QObject { @@ -75,6 +76,7 @@ private slots: void inputReentrancy(); void tabletEvents(); void windowModality_QTBUG27039(); + void visibility(); void initTestCase() { @@ -1075,6 +1077,44 @@ void tst_QWindow::windowModality_QTBUG27039() QCOMPARE(modalA.mousePressedCount, 1); } +void tst_QWindow::visibility() +{ + qRegisterMetaType<Qt::WindowModality>("QWindow::Visibility"); + + QWindow window; + QSignalSpy spy(&window, SIGNAL(visibilityChanged(QWindow::Visibility))); + + window.setVisibility(QWindow::AutomaticVisibility); + QVERIFY(window.isVisible()); + QVERIFY(window.visibility() != QWindow::Hidden); + QVERIFY(window.visibility() != QWindow::AutomaticVisibility); + QCOMPARE(spy.count(), 1); + spy.clear(); + + window.setVisibility(QWindow::Hidden); + QVERIFY(!window.isVisible()); + QCOMPARE(window.visibility(), QWindow::Hidden); + QCOMPARE(spy.count(), 1); + spy.clear(); + + window.setVisibility(QWindow::FullScreen); + QVERIFY(window.isVisible()); + QCOMPARE(window.windowState(), Qt::WindowFullScreen); + QCOMPARE(window.visibility(), QWindow::FullScreen); + QCOMPARE(spy.count(), 1); + spy.clear(); + + window.setWindowState(Qt::WindowNoState); + QCOMPARE(window.visibility(), QWindow::Windowed); + QCOMPARE(spy.count(), 1); + spy.clear(); + + window.setVisible(false); + QCOMPARE(window.visibility(), QWindow::Hidden); + QCOMPARE(spy.count(), 1); + spy.clear(); +} + #include <tst_qwindow.moc> QTEST_MAIN(tst_QWindow) |