summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-08 10:33:38 +0200
committerMarkku Luukkainen <markku.luukkainen@digia.com>2009-06-08 10:33:38 +0200
commit8938f242414cc67f8a4081222857bfeb16bb5f37 (patch)
tree5dafd79edc9d164ab1002896c90647bf373a8727 /src
parent5d749ad1b67a8d5ba77800567ffa473f5ad1d9f5 (diff)
downloadqt4-tools-8938f242414cc67f8a4081222857bfeb16bb5f37.tar.gz
Implemented context sensitive menu item
Diffstat (limited to 'src')
-rw-r--r--src/gui/widgets/qmenu_symbian.cpp32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/gui/widgets/qmenu_symbian.cpp b/src/gui/widgets/qmenu_symbian.cpp
index e42288256d..ed2ea46e33 100644
--- a/src/gui/widgets/qmenu_symbian.cpp
+++ b/src/gui/widgets/qmenu_symbian.cpp
@@ -90,6 +90,16 @@ bool menuExists()
return true;
}
+static bool hasContextMenu(QWidget* widget)
+{
+ if (!widget)
+ return false;
+ const Qt::ContextMenuPolicy policy = widget->contextMenuPolicy();
+ if (policy != Qt::NoContextMenu && policy != Qt::PreventContextMenu ) {
+ return true;
+ }
+ return false;
+}
// ### FIX THIS, copy/paste of original (faulty) stripped text implementation.
// Implementation should be removed from QAction implementation to some generic place
static QString qt_strippedText_copy_from_qaction(QString s)
@@ -212,24 +222,12 @@ static void rebuildMenu()
QMenuBarPrivate *mb = 0;
QWidget *w = qApp->activeWindow();
QMainWindow *mainWindow = qobject_cast<QMainWindow*>(w);
- /* if ((mainWindow) && mainWindow->hasSoftKeyStack()) {
- QSoftKeyStack* softKeyStack = mainWindow->softKeyStack();
- if (!softKeyStack->isEmpty()) {
- const QSoftkeySet& softKeyTop = softKeyStack->top();
- int index=0;
- bool found=false;
- while( index<softKeyTop.count() && !found) {
- QSoftKeyAction* softAction = softKeyTop.at(index);
- QSoftKeyAction::StandardRole role = softAction->role();
- if(softAction->role() == QSoftKeyAction::ContextMenu) {
- widgetWithContextMenu = softAction->parentWidget();
- found=true;
- }
- index++;
- }
- }
+ QWidget* focusWidget = QApplication::focusWidget();
+ if (focusWidget) {
+ if (hasContextMenu(focusWidget))
+ widgetWithContextMenu = focusWidget;
}
-*/
+
if (w) {
mb = menubars()->value(w);
qt_symbian_menu_static_cmd_id = QT_FIRST_MENU_ITEM;