summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2014-06-20 10:28:01 +0200
committerJ-P Nurmi <jpnurmi@digia.com>2014-06-25 12:37:13 +0200
commitb69d537d7ffe385d374388a0754dd03ba25684c8 (patch)
treef07866012d727eafc8e9bf640eaefce4d0099b37 /tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
parent61c3ab99672a5dea10c1a10630b611a4a675c6da (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/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp')
-rw-r--r--tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp27
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)