]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Bypassed a bug in QTreeView::mouseMoveEvent() (see comment in code). Submitted a...
authorPeter Penz <peter.penz19@gmail.com>
Sat, 16 Feb 2008 14:37:13 +0000 (14:37 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 16 Feb 2008 14:37:13 +0000 (14:37 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=775736

src/dolphindetailsview.cpp

index 63498ed9d21100f4339dcb68b3662125d5c4fa2e..ff4ce540f3dabd217de947e620bc69795cde2f6d 100644 (file)
@@ -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)