diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-06-20 10:28:01 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@digia.com> | 2014-06-25 12:37:13 +0200 |
commit | b69d537d7ffe385d374388a0754dd03ba25684c8 (patch) | |
tree | f07866012d727eafc8e9bf640eaefce4d0099b37 /tests | |
parent | 61c3ab99672a5dea10c1a10630b611a4a675c6da (diff) |
QGuiApplication::layoutDirectionChanged(Qt::LayoutDirection) [signal]
This allows QQuickApplication to listen to layout direction changes
without installing an expensive event filter on the application object.
Change-Id: I2d7d8906acecbc092657c4bd918bbdc9aad9744c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index e1cdb8db45..54b6fc6c44 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -75,6 +75,7 @@ private slots: void modalWindow(); void quitOnLastWindowClosed(); void genericPluginsAndWindowSystemEvents(); + void layoutDirection(); }; void tst_QGuiApplication::displayName() @@ -848,4 +849,30 @@ void tst_QGuiApplication::genericPluginsAndWindowSystemEvents() QCOMPARE(testReceiver.customEvents, 1); } +Q_DECLARE_METATYPE(Qt::LayoutDirection) +void tst_QGuiApplication::layoutDirection() +{ + qRegisterMetaType<Qt::LayoutDirection>(); + + Qt::LayoutDirection oldDirection = QGuiApplication::layoutDirection(); + Qt::LayoutDirection newDirection = oldDirection == Qt::LeftToRight ? Qt::RightToLeft : Qt::LeftToRight; + + QGuiApplication::setLayoutDirection(newDirection); + QCOMPARE(QGuiApplication::layoutDirection(), newDirection); + + int argc = 1; + char *argv[] = { const_cast<char*>("tst_qguiapplication") }; + QGuiApplication app(argc, argv); + QSignalSpy signalSpy(&app, SIGNAL(layoutDirectionChanged(Qt::LayoutDirection))); + + QGuiApplication::setLayoutDirection(oldDirection); + QCOMPARE(QGuiApplication::layoutDirection(), oldDirection); + QCOMPARE(signalSpy.count(), 1); + QCOMPARE(signalSpy.at(0).at(0).toInt(), static_cast<int>(oldDirection)); + + QGuiApplication::setLayoutDirection(oldDirection); + QCOMPARE(QGuiApplication::layoutDirection(), oldDirection); + QCOMPARE(signalSpy.count(), 1); +} + QTEST_APPLESS_MAIN(tst_QGuiApplication) |