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:
Thomas Hartmann
2012-12-20 17:02:11 +01:00
parent 6376b2bb46
commit 64da60dcd3
2 changed files with 21 additions and 10 deletions

View File

@@ -204,6 +204,24 @@ FormEditorItem* DragTool::calculateContainer(const QPointF &point, FormEditorIte
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)
{
@@ -296,17 +314,9 @@ void DragTool::dragEnterEvent(QGraphicsSceneDragDropEvent * event)
view()->widget()->setFocus();
m_Aborted = false;
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.append(newImport);
}
}
importToBeAddedList = missingImportList(
itemLibraryEntryFromData(event->mimeData()->data("application/vnd.bauhaus.itemlibraryinfo")));
}
view()->model()->changeImports(importToBeAddedList, QList<Import>());

View File

@@ -114,6 +114,7 @@ private:
void createQmlItemNode(const ItemLibraryEntry &itemLibraryEntry, QmlItemNode parentNode, QPointF scenePos);
void createQmlItemNodeFromImage(const QString &imageName, QmlItemNode parentNode, QPointF scenePos);
FormEditorItem* calculateContainer(const QPointF &point, FormEditorItem * currentItem = 0);
QList<Import> missingImportList(const ItemLibraryEntry &itemLibraryEntry);
void begin(QPointF scenePos);
void end(QPointF scenePos);