diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-21 03:18:06 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-05-21 03:18:06 (GMT) |
commit | ef3560410f9ee5c851ef46298e38297a7ed42994 (patch) | |
tree | 27d16841525607dbf90273e4ef3d8d212ed0f002 /tests/auto/qmenu/tst_qmenu.cpp | |
parent | c12af169a157a5ba2e25289b996648a9a8e3cb9f (diff) | |
parent | fd3b00e9aa30f8e15060292f5335b912fe42eeff (diff) | |
download | Qt-ef3560410f9ee5c851ef46298e38297a7ed42994.zip Qt-ef3560410f9ee5c851ef46298e38297a7ed42994.tar.gz Qt-ef3560410f9ee5c851ef46298e38297a7ed42994.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
add missing include
Fix crash when using fonts in non-gui QApplication
Deselect the current selection when the QItemSelectionModel::model is reset.
Autotest fix on macosx
Compile with gcc 4.0.1
improve Unicode Normalization autotest
more subtests for QChar
nano optimization of canonicalOrderHelper()
fix canonicalOrderHelper() for some corner case
use new QChar::requiresSurrogates() instead of hardcoded value
prevent fake normalization
prefer QChar::*surrogate() over hardcoded values
Fixed an assert in QMenu
Diffstat (limited to 'tests/auto/qmenu/tst_qmenu.cpp')
-rw-r--r-- | tests/auto/qmenu/tst_qmenu.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/auto/qmenu/tst_qmenu.cpp b/tests/auto/qmenu/tst_qmenu.cpp index e10d7ee..b6bdb36 100644 --- a/tests/auto/qmenu/tst_qmenu.cpp +++ b/tests/auto/qmenu/tst_qmenu.cpp @@ -51,6 +51,7 @@ #include <QListWidget> #include <QWidgetAction> #include <QDesktopWidget> +#include <qdialog.h> #include <qmenu.h> #include <qstyle.h> @@ -106,6 +107,7 @@ private slots: void pushButtonPopulateOnAboutToShow(); void QTBUG7907_submenus_autoselect(); void QTBUG7411_submenus_activate(); + void QTBUG_10735_crashWithDialog(); protected slots: void onActivated(QAction*); void onHighlighted(QAction*); @@ -969,5 +971,57 @@ void tst_QMenu::QTBUG7411_submenus_activate() +class MyMenu : public QMenu +{ + Q_OBJECT +public: + MyMenu() : m_currentIndex(0) + { + for (int i = 0; i < 2; ++i) + dialogActions[i] = addAction( QString("dialog %1").arg(i), dialogs + i, SLOT(exec())); + } + + + void activateAction(int index) + { + m_currentIndex = index; + popup(QPoint()); + QTest::qWaitForWindowShown(this); + setActiveAction(dialogActions[index]); + QTimer::singleShot(500, this, SLOT(checkVisibility())); + QTest::keyClick(this, Qt::Key_Enter); //activation + } + +public slots: + void activateLastAction() + { + activateAction(1); + } + + void checkVisibility() + { + QTRY_VERIFY(dialogs[m_currentIndex].isVisible()); + if (m_currentIndex == 1) { + QApplication::closeAllWindows(); //this is the end of the test + } + } + + +private: + QAction *dialogActions[2]; + QDialog dialogs[2]; + int m_currentIndex; +}; + +void tst_QMenu::QTBUG_10735_crashWithDialog() +{ + MyMenu menu; + + QTimer::singleShot(1000, &menu, SLOT(activateLastAction())); + menu.activateAction(0); + +} + + QTEST_MAIN(tst_QMenu) #include "tst_qmenu.moc" |