summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlessandro Portale <aportale@trolltech.com>2009-05-22 11:18:59 (GMT)
committerAlessandro Portale <aportale@trolltech.com>2009-05-22 11:18:59 (GMT)
commite7f7d1f20ed691a274dcf07801baa17f7a8aabf9 (patch)
tree9011d08b39c83f8b680d0e9d5a45be757b63c027
parent164d3de4329019d34b10a802be16ea35aaafc5da (diff)
downloadQt-e7f7d1f20ed691a274dcf07801baa17f7a8aabf9.zip
Qt-e7f7d1f20ed691a274dcf07801baa17f7a8aabf9.tar.gz
Qt-e7f7d1f20ed691a274dcf07801baa17f7a8aabf9.tar.bz2
Added helper softKeyStackOfWidget. It returns the stack of the MainWindow
of a widget (which might want to push its actions to the stack)
-rw-r--r--src/gui/widgets/qsoftkeystack.cpp16
-rw-r--r--src/gui/widgets/qsoftkeystack.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/src/gui/widgets/qsoftkeystack.cpp b/src/gui/widgets/qsoftkeystack.cpp
index ae58e8d..723b9bf 100644
--- a/src/gui/widgets/qsoftkeystack.cpp
+++ b/src/gui/widgets/qsoftkeystack.cpp
@@ -165,6 +165,22 @@ void QSoftKeyStack::handleSoftKeyPress(int command)
d->handleSoftKeyPress(command);
}
+QMainWindow *QSoftKeyStack::mainWindowOfWidget(QWidget *widget)
+{
+ QWidget *widgetParent = widget;
+ while (widgetParent = widgetParent->parentWidget())
+ if (QMainWindow *mainWindow = qobject_cast<QMainWindow*>(widgetParent))
+ return mainWindow;
+
+ return 0;
+}
+
+QSoftKeyStack *QSoftKeyStack::softKeyStackOfWidget(QWidget *widget)
+{
+ QMainWindow *mainWindow = mainWindowOfWidget(widget);
+ return mainWindow ? mainWindow->softKeyStack() : 0;
+}
+
#if !defined(Q_WS_S60)
void QSoftKeyStackPrivate::handleSoftKeyPress(int command)
{
diff --git a/src/gui/widgets/qsoftkeystack.h b/src/gui/widgets/qsoftkeystack.h
index c9a05c3..7c955da 100644
--- a/src/gui/widgets/qsoftkeystack.h
+++ b/src/gui/widgets/qsoftkeystack.h
@@ -69,6 +69,9 @@ public:
void handleSoftKeyPress(int command);
+ static QMainWindow *mainWindowOfWidget(QWidget *widget);
+ static QSoftKeyStack *softKeyStackOfWidget(QWidget *widget);
+
private Q_SLOTS:
void handleFocusChanged(QWidget *old, QWidget *now);