summaryrefslogtreecommitdiffstats
path: root/src/gui/itemviews
diff options
context:
space:
mode:
authorJason Barron <jbarron@trolltech.com>2009-09-18 14:36:16 (GMT)
committerJason Barron <jbarron@trolltech.com>2009-09-21 08:07:37 (GMT)
commit789303e0f80a299eb3cfacc1d84dbdc1d3e4abeb (patch)
treef04b58f9917d73ebc77292551e2b139de5f5d73f /src/gui/itemviews
parentfe55b6083ab6417a83141c719184772d9a375d17 (diff)
downloadQt-789303e0f80a299eb3cfacc1d84dbdc1d3e4abeb.zip
Qt-789303e0f80a299eb3cfacc1d84dbdc1d3e4abeb.tar.gz
Qt-789303e0f80a299eb3cfacc1d84dbdc1d3e4abeb.tar.bz2
Refactor soft keys implementation.
Reviewed-by: Alessandro Portale Squashed commit of the following: commit dae5eda6996d48c12c4a5efd3f6042eb293bacbf Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:32:26 2009 +0200 Only update soft keys when KEYPAD_NAVIGATION is enabled. For 4.6, let's just call these functions when keypad navigation is defined to minimize the impact on other platforms. They should probably get thier own define some day. commit 30a730553531f0f138de5eddb30413936a34fa36 Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:30:23 2009 +0200 Add/remove the menu bar action when menu bar is added/removed. commit a83343a2870b34c228c8bc5e6274607b0e97baf6 Author: Jason Barron <jbarron@trolltech.com> Date: Fri Sep 18 10:28:55 2009 +0200 Compile fix for other platforms commit 39c9e3a0a1d3d62bf6ebd3212cfd2a81b86b9b2a Author: Jason Barron <jbarron@trolltech.com> Date: Thu Sep 17 21:37:59 2009 +0200 Fix 'softkeys' example after API re-factoring. Clean up this example and use the simplified soft key API. Now the actions are only allocated in the constructor and dynamically updated by calling addAction and removeAction. commit 314e45c33f40552db74e61755c2a3b0f8c77a41a Author: Jason Barron <jbarron@trolltech.com> Date: Thu Sep 17 21:30:32 2009 +0200 Re-factor and simplify the soft keys API. Several things here: - Move all the logic into QSoftKeyManager - Move the files into 'kernel' since it is not a widget - Remove QWidget::setSoftKey*(). Use addAction/removeAction instead - Made soft keys update on focus, window activation, and action changes. - Fixed several memory leaks where QAction's were created too often - QAction ownership pushed out to widget's - Added Select/Cancel soft keys for comboboxes and menus to be more consistent to platform look-and-feel. commit fb4c240d970262e9872dc5737df6808879143c75 Author: Jason Barron <jbarron@trolltech.com> Date: Mon Sep 7 15:49:31 2009 +0200 Merge the Symbian implementation with the other platforms nativeMenuBar It seems this has been refactored to share more code across the various platforms that support native menubars so the Symbian code can be mostly removed. commit aa55e4bcd1f009ab35c9519e18aa325fd212dd23 Author: Jason Barron <jbarron@trolltech.com> Date: Wed Aug 26 17:00:34 2009 +0200 Change filenames and move softkey stuff from 'widgets' to 'kernel'. This thing isn't a widget and therefore should not be in the 'widgets' subdirectory of gui. Also rename the files in preparation for refactoring and extending.
Diffstat (limited to 'src/gui/itemviews')
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp13
-rw-r--r--src/gui/itemviews/qabstractitemview_p.h4
2 files changed, 14 insertions, 3 deletions
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 5c68928..8eb5425 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -61,7 +61,7 @@
#ifndef QT_NO_ACCESSIBILITY
#include <qaccessible.h>
#endif
-#include <private/qactiontokeyeventmapper_p.h>
+#include <private/qsoftkeymanager_p.h>
QT_BEGIN_NAMESPACE
@@ -88,6 +88,9 @@ QAbstractItemViewPrivate::QAbstractItemViewPrivate()
overwrite(false),
dropIndicatorPosition(QAbstractItemView::OnItem),
#endif
+#ifdef QT_KEYPAD_NAVIGATION
+ doneSoftKey(0),
+#endif
autoScroll(true),
autoScrollMargin(16),
autoScrollCount(0),
@@ -128,6 +131,10 @@ void QAbstractItemViewPrivate::init()
doDelayedItemsLayout();
q->setAttribute(Qt::WA_InputMethodEnabled);
+
+#ifdef QT_KEYPAD_NAVIGATION
+ doneSoftKey = QSoftKeyManager::createKeyedAction(QAction::EndEditSoftKey, Qt::Key_Back, q);
+#endif
}
void QAbstractItemViewPrivate::checkMouseMove(const QPersistentModelIndex &index)
@@ -2064,14 +2071,14 @@ void QAbstractItemView::keyPressEvent(QKeyEvent *event)
if (QApplication::keypadNavigationEnabled()) {
if (!hasEditFocus()) {
setEditFocus(true);
- QActionToKeyEventMapper::addSoftKey(QAction::BackSoftKey, Qt::Key_Back, this);
+ addAction(d->doneSoftKey);
return;
}
}
break;
case Qt::Key_Back:
if (QApplication::keypadNavigationEnabled() && hasEditFocus()) {
- QActionToKeyEventMapper::removeSoftkey(this);
+ removeAction(d->doneSoftKey);
setEditFocus(false);
} else {
event->ignore();
diff --git a/src/gui/itemviews/qabstractitemview_p.h b/src/gui/itemviews/qabstractitemview_p.h
index 6b1ec8e..0bd272d 100644
--- a/src/gui/itemviews/qabstractitemview_p.h
+++ b/src/gui/itemviews/qabstractitemview_p.h
@@ -379,6 +379,10 @@ public:
QAbstractItemView::DropIndicatorPosition dropIndicatorPosition;
#endif
+#ifdef QT_KEYPAD_NAVIGATION
+ QAction *doneSoftKey;
+#endif
+
QString keyboardInput;
QTime keyboardInputTime;