From: Peter Penz Date: Sun, 6 Apr 2008 21:01:05 +0000 (+0000) Subject: fix selection regression that has been introduced by synchronizing the current index... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/955cefdcf31e597610996d205056a872294719e5 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 --- 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)