From: Tirtha Chatterjee Date: Sat, 27 Aug 2011 10:25:29 +0000 (+0530) Subject: Respect the KGlobalSettings::singleClick() attribute, function accordingly X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/12921754e1a0883253a04a01a982dec3e7f9b041?ds=inline Respect the KGlobalSettings::singleClick() attribute, function accordingly REVIEW: 102447 --- 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 #include +#include #include 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(event), QTransform()); case QEvent::GraphicsSceneMouseRelease: return mouseReleaseEvent(static_cast(event), QTransform()); + case QEvent::GraphicsSceneMouseDoubleClick: + return mouseDoubleClickEvent(static_cast(event), QTransform()); case QEvent::GraphicsSceneWheel: return wheelEvent(static_cast(event), QTransform()); case QEvent::GraphicsSceneDragEnter: