]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/draganddrophelper.cpp
Increase version number to 1.5
[dolphin.git] / src / draganddrophelper.cpp
index 002394155f74b4fdb97a529dfa54ae00a37c0e76..a85e3cb6acfa9340c47147971b2f16bbb0cae91b 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "draganddrophelper.h"
 #include "dolphiniconsview.h"
-#include "dolphincontroller.h"
+#include "dolphinviewcontroller.h"
 
 #include <kdirmodel.h>
 #include <kfileitem.h>
@@ -53,17 +53,25 @@ bool DragAndDropHelper::isMimeDataSupported(const QMimeData* mimeData) const
 
 void DragAndDropHelper::startDrag(QAbstractItemView* itemView,
                                   Qt::DropActions supportedActions,
-                                  DolphinController* controller)
+                                  DolphinViewController* dolphinViewController)
 {
+    // Do not start a new drag until the previous one has been finished.
+    // This is a (possibly temporary) fix for bug #187884.
+    static bool isDragging = false;
+    if (isDragging) {
+        return;
+    }
+    isDragging = true;
+
     QModelIndexList indexes = itemView->selectionModel()->selectedIndexes();
-    if (indexes.count() > 0) {
+    if (!indexes.isEmpty()) {
         QMimeData *data = itemView->model()->mimeData(indexes);
         if (data == 0) {
             return;
         }
 
-        if (controller != 0) {
-            controller->emitHideToolTip();
+        if (dolphinViewController != 0) {
+            dolphinViewController->requestToolTipHiding();
         }
 
         QDrag* drag = new QDrag(itemView);
@@ -85,6 +93,7 @@ void DragAndDropHelper::startDrag(QAbstractItemView* itemView,
         drag->exec(supportedActions, Qt::IgnoreAction);
         m_dragSource = 0;
     }
+    isDragging = false;
 }
 
 bool DragAndDropHelper::isDragSource(QAbstractItemView* itemView)