From 9cc43beb598c7f417f3d3b00928b7eb1e6c5df46 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 16 Feb 2008 14:37:13 +0000 Subject: [PATCH] Bypassed a bug in QTreeView::mouseMoveEvent() (see comment in code). Submitted a bug-report to Trolltech, bug tracker ID is still pending (will add the ID into the code as soon as I get it). svn path=/trunk/KDE/kdebase/apps/; revision=775736 --- src/dolphindetailsview.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp index 63498ed9d..ff4ce540f 100644 --- a/src/dolphindetailsview.cpp +++ b/src/dolphindetailsview.cpp @@ -227,11 +227,30 @@ void DolphinDetailsView::mouseMoveEvent(QMouseEvent* event) setSelection(selRect, QItemSelectionModel::Select); } - QTreeView::mouseMoveEvent(event); + // TODO: see comment at end of method + // QTreeView::mouseMoveEvent(event); + QAbstractItemView::mouseMoveEvent(event); updateElasticBand(); } else { - QTreeView::mouseMoveEvent(event); + // TODO: see comment at end of method + //QTreeView::mouseMoveEvent(event); + QAbstractItemView::mouseMoveEvent(event); } + + // The original implementation of QTreeView::mouseMoveEvent() looks like this (Qt4.4): + // + // void QTreeView::mouseMoveEvent(QMouseEvent *event) + // { + // Q_D(QTreeView); + // if (d->itemDecorationAt(event->pos()) == -1) // ### what about expanding/collapsing state ? + // QAbstractItemView::mouseMoveEvent(event); + // } + // + // This prevents that the signal 'entered()' is emitted when the mouse is above a decoration, + // although the hovered item has changed. The SelectionManager is connected to 'entered()' + // and assumes that the old item is selected. This is currently bypassed by skipping + // the base implementation and invoking QAbstractItemView::mouseMoveEvent() directly. + // Submitted a bug report to Trolltech, bug ID is still pending. } void DolphinDetailsView::mouseReleaseEvent(QMouseEvent* event) -- 2.47.3