From e508685bae6a2171b0a681dbbe4764bfd16071e5 Mon Sep 17 00:00:00 2001 From: Matthias Fuchs Date: Fri, 27 May 2011 18:00:00 +0200 Subject: DolphinColumnView navigation works more intuitively. If no item is selected then pressing right moves to a column view with child url, instead of the first index. BUG:263110 REVIEW:101449 --- src/views/dolphincolumnview.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/views/dolphincolumnview.cpp') diff --git a/src/views/dolphincolumnview.cpp b/src/views/dolphincolumnview.cpp index fa1f620e4..3425c460b 100644 --- a/src/views/dolphincolumnview.cpp +++ b/src/views/dolphincolumnview.cpp @@ -338,6 +338,7 @@ void DolphinColumnView::mousePressEvent(QMouseEvent* event) void DolphinColumnView::keyPressEvent(QKeyEvent* event) { + const bool hadSelection = selectionModel()->hasSelection(); DolphinTreeView::keyPressEvent(event); DolphinViewController* controller = m_container->m_dolphinViewController; @@ -346,7 +347,15 @@ void DolphinColumnView::keyPressEvent(QKeyEvent* event) case Qt::Key_Right: { // Special key handling for the column: A Key_Right should // open a new column for the currently selected folder. - const QModelIndex dolphinModelIndex = m_proxyModel->mapToSource(currentIndex()); + QModelIndex dolphinModelIndex = m_proxyModel->mapToSource(currentIndex()); + + // If there is no selection we automatically move to the child url + // instead of the first directory. + // See BUG:263110 + if (!hadSelection && !childUrl().isEmpty()) { + dolphinModelIndex = m_dolphinModel->indexForUrl(childUrl()); + } + const KFileItem item = m_dolphinModel->itemForIndex(dolphinModelIndex); if (!item.isNull() && item.isDir()) { controller->emitItemTriggered(item); -- cgit v1.3