forked from qt-creator/qt-creator
QmlDesigner.DragTool: fixing creating file imports
Creating file imports from the item library was broken. If the version is -1.-1 we have to create a FileImport instead of a library import. Change-Id: I6bef68ba308d2254c9c2cb607a91c81055a360d4 Reviewed-by: Marco Bubke <marco.bubke@digia.com>
This commit is contained in:
@@ -204,6 +204,24 @@ FormEditorItem* DragTool::calculateContainer(const QPointF &point, FormEditorIte
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<Import> DragTool::missingImportList(const ItemLibraryEntry &itemLibraryEntry)
|
||||||
|
{
|
||||||
|
QList<Import> importToBeAddedList;
|
||||||
|
|
||||||
|
if (!itemLibraryEntry.requiredImport().isEmpty()) {
|
||||||
|
const QString newImportUrl = itemLibraryEntry.requiredImport();
|
||||||
|
const QString newImportVersion = QString("%1.%2").arg(QString::number(itemLibraryEntry.majorVersion()), QString::number(itemLibraryEntry.minorVersion()));
|
||||||
|
Import newImport = Import::createLibraryImport(newImportUrl, newImportVersion);
|
||||||
|
|
||||||
|
if (itemLibraryEntry.majorVersion() == -1 && itemLibraryEntry.minorVersion() == -1) {
|
||||||
|
newImport = Import::createFileImport(newImportUrl, QString());
|
||||||
|
} else {
|
||||||
|
newImport = Import::createLibraryImport(newImportUrl, newImportVersion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return importToBeAddedList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DragTool::formEditorItemsChanged(const QList<FormEditorItem*> & itemList)
|
void DragTool::formEditorItemsChanged(const QList<FormEditorItem*> & itemList)
|
||||||
{
|
{
|
||||||
@@ -296,17 +314,9 @@ void DragTool::dragEnterEvent(QGraphicsSceneDragDropEvent * event)
|
|||||||
view()->widget()->setFocus();
|
view()->widget()->setFocus();
|
||||||
m_Aborted = false;
|
m_Aborted = false;
|
||||||
Q_ASSERT(!event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo").isEmpty());
|
Q_ASSERT(!event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo").isEmpty());
|
||||||
ItemLibraryEntry itemLibraryEntry = itemLibraryEntryFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo"));
|
|
||||||
if (!itemLibraryEntry.requiredImport().isEmpty()) {
|
|
||||||
const QString newImportUrl = itemLibraryEntry.requiredImport();
|
|
||||||
const QString newImportVersion = QString("%1.%2").arg(QString::number(itemLibraryEntry.majorVersion()), QString::number(itemLibraryEntry.minorVersion()));
|
|
||||||
Import newImport = Import::createLibraryImport(newImportUrl, newImportVersion);
|
|
||||||
|
|
||||||
if (!view()->model()->hasImport(newImport, true, true)) {
|
importToBeAddedList = missingImportList(
|
||||||
importToBeAddedList.append(newImport);
|
itemLibraryEntryFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo")));
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
view()->model()->changeImports(importToBeAddedList, QList<Import>());
|
view()->model()->changeImports(importToBeAddedList, QList<Import>());
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ private:
|
|||||||
void createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, QmlItemNode parentNode, QPointF scenePos);
|
void createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, QmlItemNode parentNode, QPointF scenePos);
|
||||||
void createQmlItemNodeFromImage(const QString &imageName, QmlItemNode parentNode, QPointF scenePos);
|
void createQmlItemNodeFromImage(const QString &imageName, QmlItemNode parentNode, QPointF scenePos);
|
||||||
FormEditorItem* calculateContainer(const QPointF &point, FormEditorItem * currentItem = 0);
|
FormEditorItem* calculateContainer(const QPointF &point, FormEditorItem * currentItem = 0);
|
||||||
|
QList<Import> missingImportList(const ItemLibraryEntry &itemLibraryEntry);
|
||||||
|
|
||||||
void begin(QPointF scenePos);
|
void begin(QPointF scenePos);
|
||||||
void end(QPointF scenePos);
|
void end(QPointF scenePos);
|
||||||
|
|||||||
Reference in New Issue
Block a user