diff options
Diffstat (limited to 'src/views/dolphintreeview.cpp')
| -rw-r--r-- | src/views/dolphintreeview.cpp | 42 |
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 |
