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