From d3465906591fa413eb2d853d27aaff4dd313c53e Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@digia.com>
Date: Wed, 7 May 2014 16:27:10 +0200
Subject: [PATCH] QmlDesigner: Handle drops of images from the item library in
 the navigator

Change-Id: I42c0224d5f6aadc7253113b39d7c4ababeab45fb
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
---
 .../components/navigator/navigatortreemodel.cpp  | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
index a16b5ea7ffb..f30be7df08b 100644
--- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
+++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
@@ -718,7 +718,23 @@ void NavigatorTreeModel::handleItemLibraryItemDrop(const QMimeData *mimeData, in
 
 void NavigatorTreeModel::handleItemLibraryImageDrop(const QMimeData *mimeData, int rowNumber, const QModelIndex &dropModelIndex)
 {
+    QModelIndex rowModelIndex = dropModelIndex.sibling(dropModelIndex.row(), 0);
+    int targetRowNumber = rowNumber;
+    NodeAbstractProperty targetProperty;
+
+    bool foundTarget = computeTarget(rowModelIndex, this, &targetProperty, &targetRowNumber);
+
+    if (foundTarget) {
+        QString imageFileName = QString::fromUtf8(mimeData->data("application/vnd.bauhaus.libraryresource"));
+        QmlItemNode newQmlItemNode = QmlItemNode::createQmlItemNodeFromImage(m_view, imageFileName, QPointF(0., 0.), targetProperty);
 
+        if (newQmlItemNode.isValid()) {
+            QList<ModelNode> newModelNodeList;
+            newModelNodeList.append(newQmlItemNode);
+
+            moveNodesInteractive(targetProperty, newModelNodeList, targetRowNumber);
+        }
+    }
 }
 
 // along the lines of QObject::blockSignals
-- 
GitLab