diff options
author | Shawn Rutledge <shawn.rutledge@digia.com> | 2013-04-17 10:48:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-18 09:18:43 +0200 |
commit | 4c7881396edbb513b15f7f46af9553a3d7478dab (patch) | |
tree | b35241865e002d840309be514819f683f2c8195f /tests | |
parent | 7c791171a15c9192f4b025a810dde11b7dae2e51 (diff) |
An RTL submenu should be right-aligned
Task-number: QTBUG-30595
Change-Id: Iac54cae70b5a2ac6be5a750279fb390bb158776a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp index e48316fd19..9fdb8de4b8 100644 --- a/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp +++ b/tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp @@ -101,6 +101,7 @@ private slots: void pushButtonPopulateOnAboutToShow(); void QTBUG7907_submenus_autoselect(); void QTBUG7411_submenus_activate(); + void QTBUG30595_rtl_submenu(); void QTBUG20403_nested_popup_on_shortcut_trigger(); void QTBUG_10735_crashWithDialog(); protected slots: @@ -896,6 +897,41 @@ void tst_QMenu::QTBUG7411_submenus_activate() QTRY_VERIFY(sub1.isVisible()); } +class LayoutDirectionSaver +{ + Q_DISABLE_COPY(LayoutDirectionSaver) +public: + explicit LayoutDirectionSaver(Qt::LayoutDirection direction) + : m_oldDirection(qApp->layoutDirection()) + { + qApp->setLayoutDirection(direction); + } + + ~LayoutDirectionSaver() + { + qApp->setLayoutDirection(m_oldDirection); + } + +private: + const Qt::LayoutDirection m_oldDirection; +}; + +void tst_QMenu::QTBUG30595_rtl_submenu() +{ + LayoutDirectionSaver directionSaver(Qt::RightToLeft); + QMenu menu("Test Menu"); + QMenu sub("&sub"); + sub.addAction("bar"); + sub.setTitle("&sub"); + menu.addMenu(&sub); + menu.move(200, 20); + menu.show(); + QVERIFY(QTest::qWaitForWindowExposed(&menu)); + QTest::mouseClick(&menu, Qt::LeftButton, Qt::NoModifier, QPoint(5,5) ); + QTRY_VERIFY(sub.isVisible()); + QVERIFY(sub.pos().x() < menu.pos().x()); +} + void tst_QMenu::QTBUG20403_nested_popup_on_shortcut_trigger() { QMenu menu("Test Menu"); |