summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraxis <qt-info@nokia.com>2010-09-27 08:57:02 +0200
committeraxis <qt-info@nokia.com>2010-09-27 09:24:21 +0200
commit389a27400a4b95133ec7963b1d81f3317056a286 (patch)
treef9fb51ecb7a5e933b5dd67a5ffebfc20480ec50e /tests
parent0ec3281f7deb9a0c5bdc26481bf5c0fb8d3ae750 (diff)
Made the Symbian menu close when switching native focus.
This was required to avoid windows appearing on top of the popup menu, preventing both the menu and the softkeys from being used. Task: QTBUG-9965 AutoTest: Included RevBy: Jason Barron
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 098ce3c40e..2f221d22b6 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -70,6 +70,7 @@
#include <qtoolbar.h>
#include <QtGui/qpaintengine.h>
#include <private/qbackingstore_p.h>
+#include <qmenubar.h>
#include <QtGui/QGraphicsView>
#include <QtGui/QGraphicsProxyWidget>
@@ -81,8 +82,14 @@
#include <avkon.hrh> // EEikStatusPaneUidTitle
#include <akntitle.h> // CAknTitlePane
#include <akncontext.h> // CAknContextPane
+#endif
+
+#ifdef Q_OS_SYMBIAN
#include <eikspane.h> // CEikStatusPane
#include <eikbtgpc.h> // CEikButtonGroupContainer
+#include <eikenv.h> // CEikonEnv
+#include <eikaufty.h> // MEikAppUiFactory
+#include <eikmenub.h> // CEikMenuBar
#endif
#ifdef Q_WS_QWS
@@ -387,6 +394,7 @@ private slots:
void maximizedWindowModeTransitions();
void minimizedWindowModeTransitions();
void normalWindowModeTransitions();
+ void focusSwitchClosesPopupMenu();
#endif
void focusProxyAndInputMethods();
@@ -10253,6 +10261,31 @@ void tst_QWidget::normalWindowModeTransitions()
QVERIFY(!buttonGroup->IsVisible());
QVERIFY(!statusPane->IsVisible());
}
+
+void tst_QWidget::focusSwitchClosesPopupMenu()
+{
+ QMainWindow mainWindow;
+ QAction action("Test action", &mainWindow);
+ mainWindow.menuBar()->addAction(&action);
+
+ mainWindow.show();
+ QT_TRAP_THROWING(CEikonEnv::Static()->AppUiFactory()->MenuBar()->TryDisplayMenuBarL());
+ QVERIFY(CEikonEnv::Static()->AppUiFactory()->MenuBar()->IsDisplayed());
+
+ // Close the popup by opening a new window.
+ QMainWindow mainWindow2;
+ QAction action2("Test action", &mainWindow2);
+ mainWindow2.menuBar()->addAction(&action2);
+ mainWindow2.show();
+ QVERIFY(!CEikonEnv::Static()->AppUiFactory()->MenuBar()->IsDisplayed());
+
+ QT_TRAP_THROWING(CEikonEnv::Static()->AppUiFactory()->MenuBar()->TryDisplayMenuBarL());
+ QVERIFY(CEikonEnv::Static()->AppUiFactory()->MenuBar()->IsDisplayed());
+
+ // Close the popup by switching focus.
+ mainWindow.activateWindow();
+ QVERIFY(!CEikonEnv::Static()->AppUiFactory()->MenuBar()->IsDisplayed());
+}
#endif
class InputContextTester : public QInputContext