From e4f376d25a133894383f6f032cc69aad739698c6 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sun, 22 Feb 2009 14:07:46 +0000 Subject: clear the selection when Escape has been pressed (= same behavior like in Konqueror for KDE 3) BUG: 185184 svn path=/trunk/KDE/kdebase/apps/; revision=929983 --- src/dolphinview.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/dolphinview.cpp') 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(event); + if (keyEvent->key() == Qt::Key_Escape) { + clearSelection(); + } } break; -- cgit v1.3