diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2019-06-19 09:17:36 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2019-06-20 07:09:19 +0000 |
commit | 3333f1b8acbafb18cdda3e6548fad7967051ee26 (patch) | |
tree | 444afb43f940f9033f9180bc1ea32a2eacc42150 /src | |
parent | dfc5e76830795d05cfa29ae685c40816f09246bc (diff) |
QmlDesigner: Check if property exists before reparenting
Change-Id: I503abbbf8e9312d66567529d0bde66f0090b6f70
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 2a559c7359..8c89acb7c8 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -447,7 +447,7 @@ static bool findTargetProperty(const QModelIndex &rowModelIndex, NavigatorTreeModel *navigatorTreeModel, NodeAbstractProperty *targetProperty, int *targetRowNumber, - const QString &propertyName = {}) + const PropertyName &propertyName = {}) { QModelIndex targetItemIndex; PropertyName targetPropertyName; @@ -461,10 +461,10 @@ static bool findTargetProperty(const QModelIndex &rowModelIndex, if (!targetNode.metaInfo().hasDefaultProperty()) return false; - if (propertyName.isEmpty()) + if (propertyName.isEmpty() || !targetNode.metaInfo().hasProperty(propertyName)) targetPropertyName = targetNode.metaInfo().defaultPropertyName(); else - targetPropertyName = propertyName.toUtf8(); + targetPropertyName = propertyName; } // Disallow dropping items between properties, which are listed first. @@ -520,7 +520,7 @@ void NavigatorTreeModel::handleItemLibraryItemDrop(const QMimeData *mimeData, in const QString targetPropertyName = hints.forceNonDefaultProperty(); - bool foundTarget = findTargetProperty(rowModelIndex, this, &targetProperty, &targetRowNumber, targetPropertyName); + bool foundTarget = findTargetProperty(rowModelIndex, this, &targetProperty, &targetRowNumber, targetPropertyName.toUtf8()); if (foundTarget) { if (!NodeHints::fromItemLibraryEntry(itemLibraryEntry).canBeDroppedInNavigator()) |