From: Shaun Reich Date: Sun, 8 Feb 2009 04:33:00 +0000 (+0000) Subject: Added right arrow key usage when in the Column View mode. When a directory is selecte... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/4a5218b3671cfa637d66bc21c231d5d97670a3fc Added right arrow key usage when in the Column View mode. When a directory is selected, and the right arrow is used, it will navigate into it (like double/single clicking a directory). Note, this only works on directories, not files, it was made this way by intention. svn path=/trunk/KDE/kdebase/apps/; revision=923057 --- diff --git a/src/dolphincontroller.cpp b/src/dolphincontroller.cpp index 980e16059..820d34a06 100644 --- a/src/dolphincontroller.cpp +++ b/src/dolphincontroller.cpp @@ -129,14 +129,36 @@ void DolphinController::handleKeyPressEvent(QKeyEvent* event) const QItemSelectionModel* selModel = m_itemView->selectionModel(); const QModelIndex currentIndex = selModel->currentIndex(); - const bool trigger = currentIndex.isValid() - && ((event->key() == Qt::Key_Return) - || (event->key() == Qt::Key_Enter)) - && (selModel->selectedIndexes().count() > 0); - if (trigger) { - const QModelIndexList indexList = selModel->selectedIndexes(); - foreach (const QModelIndex& index, indexList) { - emit itemTriggered(itemForIndex(index)); + + if (currentIndex.isValid() && selModel->selectedIndexes().count() > 0) { + const int key = event->key(); + + if ((key == Qt::Key_Return) || (key == Qt::Key_Enter) || (key == Qt::Key_Right)) { + + const QModelIndexList indexList = selModel->selectedIndexes(); + const bool isColumnView = m_dolphinView->mode() == m_dolphinView->ColumnView; + + if (key == Qt::Key_Right) { + if (isColumnView) { + // If it is the right arrow key and in the column view-only. + KFileItem curFileItem; + foreach(const QModelIndex& index, indexList) { + curFileItem = itemForIndex(index); + if (!curFileItem.isFile()) { + /* We want + * to make sure that the selected item + * is only a folder. If we did not have this check, it would be possible to use + * the right arrow to open a file when in the column view */ + emit itemTriggered(curFileItem); + } + } + } + } else { + //Else it is Return or Enter keypress, so it is okay to perform the action of triggering, on files also. + foreach(const QModelIndex& index, indexList) { + emit itemTriggered(itemForIndex(index)); + } + } } } }