┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphincolumnwidget.cpp14
-rw-r--r--src/dolphinview.cpp17
2 files changed, 27 insertions, 4 deletions
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp
index 5ef86a29d..d65e9aa57 100644
--- a/src/dolphincolumnwidget.cpp
+++ b/src/dolphincolumnwidget.cpp
@@ -393,7 +393,8 @@ void DolphinColumnWidget::keyPressEvent(QKeyEvent* event)
DolphinController* controller = m_view->m_controller;
controller->handleKeyPressEvent(event);
- if (event->key() == Qt::Key_Right) {
+ switch (event->key()) {
+ 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 index = currentIndex();
@@ -401,6 +402,17 @@ void DolphinColumnWidget::keyPressEvent(QKeyEvent* event)
if (!item.isNull() && item.isDir()) {
controller->emitItemTriggered(item);
}
+ break;
+ }
+
+ case Qt::Key_Escape:
+ selectionModel()->setCurrentIndex(selectionModel()->currentIndex(),
+ QItemSelectionModel::Current |
+ QItemSelectionModel::Clear);
+ break;
+
+ default:
+ break;
}
if (m_toolTipManager != 0) {
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index 770bab1f7..f40accdde 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -314,7 +314,10 @@ bool DolphinView::hasSelection() const
void DolphinView::clearSelection()
{
- itemView()->selectionModel()->clear();
+ QItemSelectionModel* selModel = itemView()->selectionModel();
+ const QModelIndex currentIndex = selModel->currentIndex();
+ selModel->setCurrentIndex(currentIndex, QItemSelectionModel::Current |
+ QItemSelectionModel::Clear);
}
KFileItemList DolphinView::selectedItems() const
@@ -866,8 +869,16 @@ bool DolphinView::eventFilter(QObject* watched, QEvent* event)
break;
case QEvent::KeyPress:
- if ((watched == itemView()) && (m_toolTipManager != 0)) {
- m_toolTipManager->hideTip();
+ if (watched == itemView()) {
+ if (m_toolTipManager != 0) {
+ m_toolTipManager->hideTip();
+ }
+
+ // clear the selection when Escape has been pressed
+ QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
+ if (keyEvent->key() == Qt::Key_Escape) {
+ clearSelection();
+ }
}
break;