]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/sidebartreeview.cpp
Forwardport 773570:
[dolphin.git] / src / sidebartreeview.cpp
index d31300539feed17ebe074688b8ecf19e3f7f0dd3..d580cbf6de2c453f5775fa21edcbfb802f15902c 100644 (file)
@@ -81,12 +81,10 @@ bool SidebarTreeView::event(QEvent* event)
         header()->hide();
     }
     else if (event->type() == QEvent::UpdateRequest) {
-        resizeColumnToContents(DolphinModel::Name);
-
-// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
-//       check avoids a division by zero happening on versions before 4.3.1.
-//       Right now KDE in theory can be shipped with Qt 4.3.0 and above.
-//       ereslibre
+        // TODO: Remove this check when 4.3.2 is released and KDE requires it... this
+        //       check avoids a division by zero happening on versions before 4.3.1.
+        //       Right now KDE in theory can be shipped with Qt 4.3.0 and above.
+        //       ereslibre
 #if (QT_VERSION >= QT_VERSION_CHECK(4, 3, 2) || defined(QT_KDE_QT_COPY))
         // a wheel movement will scroll 1 item
         if (model()->rowCount() > 0) {
@@ -94,6 +92,9 @@ bool SidebarTreeView::event(QEvent* event)
         }
 #endif
     }
+    else if (event->type() == QEvent::MetaCall) {
+        resizeColumnToContents(DolphinModel::Name);
+    }
 
     return QTreeView::event(event);
 }
@@ -105,10 +106,12 @@ void SidebarTreeView::startDrag(Qt::DropActions supportedActions)
 
 void SidebarTreeView::dragEnterEvent(QDragEnterEvent* event)
 {
+    QTreeView::dragEnterEvent(event);
+
     if (event->mimeData()->hasUrls()) {
         event->acceptProposedAction();
     }
-    QTreeView::dragEnterEvent(event);
+
     m_dragging = true;
 }
 
@@ -130,6 +133,11 @@ void SidebarTreeView::dragMoveEvent(QDragMoveEvent* event)
     setDirtyRegion(m_dropRect);
     m_dropRect = visualRect(index);
     setDirtyRegion(m_dropRect);
+
+    if (event->mimeData()->hasUrls()) {
+        // accept url drops, independently from the destination item
+        event->acceptProposedAction();
+    }
 }
 
 void SidebarTreeView::dropEvent(QDropEvent* event)
@@ -154,7 +162,7 @@ void SidebarTreeView::paintEvent(QPaintEvent* event)
     // TODO: remove this code when the issue #160611 is solved in Qt 4.4
     if (m_dragging) {
         const QBrush& brush = palette().brush(QPalette::Normal, QPalette::Highlight);
-        DragAndDropHelper::drawHoverIndication(viewport(), m_dropRect, brush);
+        DragAndDropHelper::drawHoverIndication(this, m_dropRect, brush);
     }
 }