From 85ed71eb30487b653f01359e97371c6230737c44 Mon Sep 17 00:00:00 2001 From: Aniket Anvit Date: Tue, 5 Feb 2013 19:58:06 +0100 Subject: [PATCH] Apply changes of the KGlobalSettings::singleClick() setting immediately Fixes a regression introduced by commit 7a364cbf489af25e123d18713523151a3a53f814. Patch reviewed and pushed by Frank Reininghaus. BUG: 313342 FIXED-IN: 4.10.1 --- src/kitemviews/kitemlistcontroller.cpp | 14 +++++++------- src/kitemviews/kitemlistcontroller.h | 11 +++++------ src/panels/folders/folderspanel.cpp | 2 +- src/panels/places/placespanel.cpp | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 697e04fef..c6239df94 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -44,7 +44,7 @@ KItemListController::KItemListController(KItemModelBase* model, KItemListView* view, QObject* parent) : QObject(parent), - m_singleClickActivation(KGlobalSettings::singleClick()), + m_singleClickActivationEnforced(false), m_selectionTogglePressed(false), m_clearSelectionIfItemsAreNotDragged(false), m_selectionBehavior(NoSelection), @@ -190,14 +190,14 @@ int KItemListController::autoActivationDelay() const return m_autoActivationTimer->interval(); } -void KItemListController::setSingleClickActivation(bool singleClick) +void KItemListController::setSingleClickActivationEnforced(bool singleClick) { - m_singleClickActivation = singleClick; + m_singleClickActivationEnforced = singleClick; } -bool KItemListController::singleClickActivation() const +bool KItemListController::singleClickActivationEnforced() const { - return m_singleClickActivation; + return m_singleClickActivationEnforced; } bool KItemListController::showEvent(QShowEvent* event) @@ -756,7 +756,7 @@ bool KItemListController::mouseReleaseEvent(QGraphicsSceneMouseEvent* event, con } else if (shiftOrControlPressed) { // The mouse click should only update the selection, not trigger the item emitItemActivated = false; - } else if (!m_singleClickActivation) { + } else if (!(KGlobalSettings::singleClick() || m_singleClickActivationEnforced)) { emitItemActivated = false; } if (emitItemActivated) { @@ -786,7 +786,7 @@ bool KItemListController::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event, } } - bool emitItemActivated = !m_singleClickActivation && + bool emitItemActivated = !(KGlobalSettings::singleClick() || m_singleClickActivationEnforced) && (event->button() & Qt::LeftButton) && index >= 0 && index < m_model->count(); if (emitItemActivated) { diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h index 235e4a9eb..4d5fee345 100644 --- a/src/kitemviews/kitemlistcontroller.h +++ b/src/kitemviews/kitemlistcontroller.h @@ -129,12 +129,11 @@ public: /** * If set to true, the signals itemActivated() and itemsActivated() are emitted - * after a single-click of the left mouse button. If set to false, a double-click - * is required. Per default the setting from KGlobalSettings::singleClick() is - * used. + * after a single-click of the left mouse button. If set to false (the default), + * the setting from KGlobalSettings::singleClick() is used. */ - void setSingleClickActivation(bool singleClick); - bool singleClickActivation() const; + void setSingleClickActivationEnforced(bool singleClick); + bool singleClickActivationEnforced() const; virtual bool showEvent(QShowEvent* event); virtual bool hideEvent(QHideEvent* event); @@ -301,7 +300,7 @@ private: void updateExtendedSelectionRegion(); private: - bool m_singleClickActivation; + bool m_singleClickActivationEnforced; bool m_selectionTogglePressed; bool m_clearSelectionIfItemsAreNotDragged; SelectionBehavior m_selectionBehavior; diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 6e3a7678f..98c06fb35 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -152,7 +152,7 @@ void FoldersPanel::showEvent(QShowEvent* event) m_controller->setAutoActivationBehavior(KItemListController::ExpansionOnly); m_controller->setMouseDoubleClickAction(KItemListController::ActivateAndExpandItem); m_controller->setAutoActivationDelay(750); - m_controller->setSingleClickActivation(true); + m_controller->setSingleClickActivationEnforced(true); connect(m_controller, SIGNAL(itemActivated(int)), this, SLOT(slotItemActivated(int))); connect(m_controller, SIGNAL(itemMiddleClicked(int)), this, SLOT(slotItemMiddleClicked(int))); diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index 61c15a7a1..919f2ed45 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -110,7 +110,7 @@ void PlacesPanel::showEvent(QShowEvent* event) m_controller = new KItemListController(m_model, m_view, this); m_controller->setSelectionBehavior(KItemListController::SingleSelection); - m_controller->setSingleClickActivation(true); + m_controller->setSingleClickActivationEnforced(true); readSettings(); -- 2.47.3