From bb3ff9c66c9cae6b29e60b6beb45f5034109b62a Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Fri, 10 Dec 2010 23:04:02 +0100
Subject: [PATCH] QmlDesigner.dragAndDrop: use instancesCompleted instead of
 timer

---
 .../qmldesigner/components/formeditor/dragtool.cpp       | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
index 2752c2b0373..66683e61564 100644
--- a/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/dragtool.cpp
@@ -208,10 +208,15 @@ void DragTool::formEditorItemsChanged(const QList<FormEditorItem*> & itemList)
 
 void DragTool::instancesCompleted(const QList<FormEditorItem*> &itemList)
 {
+    foreach (FormEditorItem* item, itemList)
+        if (item->qmlItemNode() == m_dragNode)
+            clearMoveDelay();
 }
 
 void DragTool::clearMoveDelay()
 {
+    if (!m_blockMove)
+        return;
     m_blockMove = false;
     if  (m_dragNode.isValid())
         beginWithPoint(m_startPoint);
@@ -253,7 +258,7 @@ void DragTool::dragEnterEvent(QGraphicsSceneDragDropEvent * event)
 {
     if (event->mimeData()->hasFormat("application/vnd.bauhaus.itemlibraryinfo") ||
         event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) {
-
+        m_blockMove = false;
         if (event->mimeData()->hasFormat("application/vnd.bauhaus.itemlibraryinfo")) {
             Q_ASSERT(!event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo").isEmpty());
             ItemLibraryEntry itemLibraryEntry = itemLibraryEntryFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo"));
@@ -340,7 +345,7 @@ void DragTool::dragMoveEvent(QGraphicsSceneDragDropEvent * event)
             } else Q_ASSERT(false);
             m_blockMove = true;
             m_startPoint = event->scenePos();
-            QTimer::singleShot(100, m_timerHandler.data(), SLOT(clearMoveDelay()));
+            QTimer::singleShot(1000, m_timerHandler.data(), SLOT(clearMoveDelay()));
         }
     }
     if (event->mimeData()->hasFormat("application/vnd.bauhaus.libraryresource")) {
-- 
GitLab