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));
+ }
+ }
}
}
}