┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views/dolphintreeview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/views/dolphintreeview.cpp')
-rw-r--r--src/views/dolphintreeview.cpp42
1 files changed, 11 insertions, 31 deletions
diff --git a/src/views/dolphintreeview.cpp b/src/views/dolphintreeview.cpp
index 9e7af0dab..64b66aa84 100644
--- a/src/views/dolphintreeview.cpp
+++ b/src/views/dolphintreeview.cpp
@@ -31,7 +31,6 @@
DolphinTreeView::DolphinTreeView(QWidget* parent) :
QTreeView(parent),
- m_updateCurrentIndex(false),
m_expandingTogglePressed(false),
m_useDefaultIndexAt(true),
m_ignoreScrollTo(false),
@@ -45,6 +44,17 @@ DolphinTreeView::~DolphinTreeView()
{
}
+void DolphinTreeView::keyboardSearch(const QString & search)
+{
+ const QModelIndex oldCurrent = currentIndex();
+ QTreeView::keyboardSearch(search);
+ if (currentIndex() != oldCurrent) {
+ // The current index has changed, but it is not selected yet.
+ // To select it, we call setCurrentIndex(...).
+ setCurrentIndex(currentIndex());
+ }
+}
+
QRegion DolphinTreeView::visualRegionForSelection(const QItemSelection& selection) const
{
// We have to make sure that the visualRect of each model index is inside the region.
@@ -72,12 +82,6 @@ bool DolphinTreeView::event(QEvent* event)
case QEvent::Polish:
m_useDefaultIndexAt = false;
break;
- case QEvent::FocusOut:
- // If a key-press triggers an action that e. g. opens a dialog, the
- // widget gets no key-release event. Assure that the pressed state
- // is reset to prevent accidently setting the current index during a selection.
- m_updateCurrentIndex = false;
- break;
default:
break;
}
@@ -238,30 +242,6 @@ void DolphinTreeView::paintEvent(QPaintEvent* event)
}
}
-void DolphinTreeView::keyPressEvent(QKeyEvent* event)
-{
- // See DolphinTreeView::currentChanged() for more information about m_updateCurrentIndex
- m_updateCurrentIndex = (event->modifiers() == Qt::NoModifier);
- QTreeView::keyPressEvent(event);
-}
-
-void DolphinTreeView::keyReleaseEvent(QKeyEvent* event)
-{
- QTreeView::keyReleaseEvent(event);
- m_updateCurrentIndex = false;
-}
-
-void DolphinTreeView::currentChanged(const QModelIndex& current, const QModelIndex& previous)
-{
- QTreeView::currentChanged(current, previous);
-
- // Stay consistent with QListView: When changing the current index by key presses
- // without modifiers, also change the selection.
- if (m_updateCurrentIndex) {
- setCurrentIndex(current);
- }
-}
-
QModelIndex DolphinTreeView::indexAt(const QPoint& point) const
{
// The blank portion of the name column counts as empty space