]> cloud.milkyroute.net Git - dolphin.git/commitdiff
The key "space" should select the current item
authorPeter Penz <peter.penz19@gmail.com>
Fri, 23 Dec 2011 15:01:23 +0000 (16:01 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 23 Dec 2011 15:03:49 +0000 (16:03 +0100)
Also in case if only one item is shown the navigation-keys should
trigger a selection of the current item. This works now consistent
within all view-modes (there have been been behavior differences
in Dolphin 1.7 depending on the used mode).

BUG: 289589
FIXED-IN: 4.8.0

src/kitemviews/kitemlistcontroller.cpp

index 79dffd41be3b19b1797124da7cad18aede526e88..8577bf8630ae0eb033be5ca748c457f6c4e3a14c 100644 (file)
@@ -188,6 +188,16 @@ bool KItemListController::keyPressEvent(QKeyEvent* event)
         default:            break;
         }
     }
+    
+    const bool selectSingleItem = itemCount == 1 &&
+                                  (key == Qt::Key_Home || key == Qt::Key_End  ||
+                                   key == Qt::Key_Up   || key == Qt::Key_Down ||
+                                   key == Qt::Key_Left || key == Qt::Key_Right);
+    if (selectSingleItem) {
+        const int current = m_selectionManager->currentItem();
+        m_selectionManager->setSelected(current);
+        return true;
+    }
 
     switch (key) {
     case Qt::Key_Home:
@@ -252,7 +262,8 @@ bool KItemListController::keyPressEvent(QKeyEvent* event)
             m_selectionManager->setSelected(index, 1, KItemListSelectionManager::Toggle);
             m_selectionManager->beginAnchoredSelection(index);
         } else {
-            m_keyboardManager->addKeys(event->text());
+            const int current = m_selectionManager->currentItem();
+            m_selectionManager->setSelected(current);
         }
         break;