From 955cefdcf31e597610996d205056a872294719e5 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 6 Apr 2008 21:01:05 +0000 Subject: fix selection regression that has been introduced by synchronizing the current index with the selected index BUG: 158649 svn path=/trunk/KDE/kdebase/apps/; revision=794189 --- src/dolphindetailsview.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/dolphindetailsview.cpp') diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 1a9b6f4da..dc9048225 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -355,7 +355,17 @@ void DolphinDetailsView::wheelEvent(QWheelEvent* event) void DolphinDetailsView::currentChanged(const QModelIndex& current, const QModelIndex& previous) { QTreeView::currentChanged(current, previous); - selectionModel()->select(current, QItemSelectionModel::ClearAndSelect); + + // Stay consistent with QListView: When changing the current index by key presses, + // also change the selection. + const Qt::KeyboardModifiers modifier = QApplication::keyboardModifiers(); + const bool adjustSelection = !(modifier & Qt::ShiftModifier) && + !(modifier & Qt::ControlModifier) && + !m_showElasticBand; + + if (adjustSelection) { + selectionModel()->select(current, QItemSelectionModel::ClearAndSelect); + } } void DolphinDetailsView::setSortIndicatorSection(DolphinView::Sorting sorting) -- cgit v1.3