diff options
| author | Tirtha Chatterjee <[email protected]> | 2011-08-27 15:55:29 +0530 |
|---|---|---|
| committer | Tirtha Chatterjee <[email protected]> | 2011-08-27 16:01:02 +0530 |
| commit | 12921754e1a0883253a04a01a982dec3e7f9b041 (patch) | |
| tree | a410bbafe369db783e252e2feff49663c415e765 | |
| parent | 78a38f2000d1f0df146e212479073242bc5ce24c (diff) | |
Respect the KGlobalSettings::singleClick() attribute, function accordingly
REVIEW: 102447
| -rw-r--r-- | src/kitemviews/kitemlistcontroller.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 29e2f47d6..2e3288044 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -32,6 +32,7 @@ #include <QGraphicsSceneEvent> #include <QMimeData> +#include <KGlobalSettings> #include <KDebug> KItemListController::KItemListController(QObject* parent) : @@ -389,6 +390,8 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con } else if (shiftOrControlPressed) { // The mouse click should only update the selection, not trigger the item emitItemClicked = false; + } else if (!KGlobalSettings::singleClick()) { + emitItemClicked = false; } } @@ -407,8 +410,15 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con bool KItemListController::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, const QTransform& transform) { - Q_UNUSED(event); - Q_UNUSED(transform); + const QPointF pos = transform.map(event->pos()); + const int index = m_view->itemAt(pos); + + bool emitItemClicked = !KGlobalSettings::singleClick() && + (event->button() & Qt::LeftButton) && + index >= 0 && index < m_model->count(); + if (emitItemClicked) { + emit itemClicked(index, event->button()); + } return false; } @@ -546,6 +556,8 @@ bool KItemListController::processEvent(QEvent* event, const QTransform& transfor return mouseMoveEvent(static_cast<QGraphicsSceneMouseEvent*>(event), QTransform()); case QEvent::GraphicsSceneMouseRelease: return mouseReleaseEvent(static_cast<QGraphicsSceneMouseEvent*>(event), QTransform()); + case QEvent::GraphicsSceneMouseDoubleClick: + return mouseDoubleClickEvent(static_cast<QGraphicsSceneMouseEvent*>(event), QTransform()); case QEvent::GraphicsSceneWheel: return wheelEvent(static_cast<QGraphicsSceneWheelEvent*>(event), QTransform()); case QEvent::GraphicsSceneDragEnter: |
