forked from qt-creator/qt-creator
QmlDesigner: Add ModelNode::ensureIdExists()
Calling ModelNode::validId() and don't get the value looks a little bit strange. Removing the refactoring step too. If there was no id, why it should be refactored? Change-Id: I0ec31f2e9a654635bcdb815e7ab1236506d37d2b Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -1622,7 +1622,7 @@ void addMouseAreaFill(const SelectionContext &selectionContext)
|
|||||||
QmlDesigner::ModelNode mouseAreaNode = selectionContext.view()->createModelNode(
|
QmlDesigner::ModelNode mouseAreaNode = selectionContext.view()->createModelNode(
|
||||||
"QtQuick.MouseArea", itemMetaInfo.majorVersion(), itemMetaInfo.minorVersion());
|
"QtQuick.MouseArea", itemMetaInfo.majorVersion(), itemMetaInfo.minorVersion());
|
||||||
#endif
|
#endif
|
||||||
mouseAreaNode.validId();
|
mouseAreaNode.ensureIdExists();
|
||||||
|
|
||||||
modelNode.defaultNodeListProperty().reparentHere(mouseAreaNode);
|
modelNode.defaultNodeListProperty().reparentHere(mouseAreaNode);
|
||||||
QmlItemNode mouseAreaItemNode(mouseAreaNode);
|
QmlItemNode mouseAreaItemNode(mouseAreaNode);
|
||||||
|
@@ -55,7 +55,7 @@ void MaterialUtils::assignMaterialTo3dModel(AbstractView *view, const ModelNode
|
|||||||
metaInfo.majorVersion(),
|
metaInfo.majorVersion(),
|
||||||
metaInfo.minorVersion());
|
metaInfo.minorVersion());
|
||||||
#endif
|
#endif
|
||||||
newMaterialNode.validId();
|
newMaterialNode.ensureIdExists();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -171,7 +171,7 @@ void StatesEditorView::createNewState()
|
|||||||
}
|
}
|
||||||
|
|
||||||
executeInTransaction("createNewState", [this, newStateName]() {
|
executeInTransaction("createNewState", [this, newStateName]() {
|
||||||
activeStatesGroupNode().validId();
|
activeStatesGroupNode().ensureIdExists();
|
||||||
|
|
||||||
ModelNode newState = activeStateGroup().addState(newStateName);
|
ModelNode newState = activeStateGroup().addState(newStateName);
|
||||||
setCurrentState(newState);
|
setCurrentState(newState);
|
||||||
|
@@ -388,7 +388,7 @@ void TextureEditorView::handleToolBarAction(int action)
|
|||||||
metaInfo.majorVersion(),
|
metaInfo.majorVersion(),
|
||||||
metaInfo.minorVersion());
|
metaInfo.minorVersion());
|
||||||
#endif
|
#endif
|
||||||
newTextureNode.validId();
|
newTextureNode.ensureIdExists();
|
||||||
matLib.defaultNodeListProperty().reparentHere(newTextureNode);
|
matLib.defaultNodeListProperty().reparentHere(newTextureNode);
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
@@ -770,7 +770,7 @@ void TextureEditorView::duplicateTexture(const ModelNode &texture)
|
|||||||
QmlObjectNode duplicateTex = createModelNode(matType, metaInfo.majorVersion(), metaInfo.minorVersion());
|
QmlObjectNode duplicateTex = createModelNode(matType, metaInfo.majorVersion(), metaInfo.minorVersion());
|
||||||
#endif
|
#endif
|
||||||
duplicateTextureNode = duplicateTex .modelNode();
|
duplicateTextureNode = duplicateTex .modelNode();
|
||||||
duplicateTextureNode.validId();
|
duplicateTextureNode.ensureIdExists();
|
||||||
|
|
||||||
// sync properties. Only the base state is duplicated.
|
// sync properties. Only the base state is duplicated.
|
||||||
const QList<AbstractProperty> props = texture.properties();
|
const QList<AbstractProperty> props = texture.properties();
|
||||||
|
@@ -90,7 +90,7 @@ void TimelineActions::pasteKeyframesToTarget(const ModelNode &targetNode,
|
|||||||
view.executeInTransaction("TimelineActions::pasteKeyframesToTarget", [=, &view](){
|
view.executeInTransaction("TimelineActions::pasteKeyframesToTarget", [=, &view](){
|
||||||
|
|
||||||
ModelNode nonConstTargetNode = targetNode;
|
ModelNode nonConstTargetNode = targetNode;
|
||||||
nonConstTargetNode.validId();
|
nonConstTargetNode.ensureIdExists();
|
||||||
|
|
||||||
if (QmlTimelineKeyframeGroup::checkKeyframesType(rootNode)) {
|
if (QmlTimelineKeyframeGroup::checkKeyframesType(rootNode)) {
|
||||||
/* Single selection */
|
/* Single selection */
|
||||||
|
@@ -349,7 +349,7 @@ const QmlTimeline TimelineView::addNewTimeline()
|
|||||||
metaInfo.majorVersion(),
|
metaInfo.majorVersion(),
|
||||||
metaInfo.minorVersion());
|
metaInfo.minorVersion());
|
||||||
#endif
|
#endif
|
||||||
timelineNode.validId();
|
timelineNode.ensureIdExists();
|
||||||
|
|
||||||
timelineNode.variantProperty("startFrame").setValue(0);
|
timelineNode.variantProperty("startFrame").setValue(0);
|
||||||
timelineNode.variantProperty("endFrame").setValue(1000);
|
timelineNode.variantProperty("endFrame").setValue(1000);
|
||||||
@@ -390,7 +390,7 @@ ModelNode TimelineView::addAnimation(QmlTimeline timeline)
|
|||||||
metaInfo.minorVersion());
|
metaInfo.minorVersion());
|
||||||
animationNode.variantProperty("duration").setValue(timeline.duration());
|
animationNode.variantProperty("duration").setValue(timeline.duration());
|
||||||
#endif
|
#endif
|
||||||
animationNode.validId();
|
animationNode.ensureIdExists();
|
||||||
|
|
||||||
animationNode.variantProperty("from").setValue(timeline.startKeyframe());
|
animationNode.variantProperty("from").setValue(timeline.startKeyframe());
|
||||||
animationNode.variantProperty("to").setValue(timeline.endKeyframe());
|
animationNode.variantProperty("to").setValue(timeline.endKeyframe());
|
||||||
|
@@ -252,7 +252,7 @@ ModelNode TransitionEditorView::addNewTransition()
|
|||||||
}});
|
}});
|
||||||
#endif
|
#endif
|
||||||
transition.setAuxiliaryData(transitionDurationProperty, 2000);
|
transition.setAuxiliaryData(transitionDurationProperty, 2000);
|
||||||
transition.validId();
|
transition.ensureIdExists();
|
||||||
root.nodeListProperty("transitions").reparentHere(transition);
|
root.nodeListProperty("transitions").reparentHere(transition);
|
||||||
|
|
||||||
for (auto it = idPropertyList.cbegin(); it != idPropertyList.cend(); ++it) {
|
for (auto it = idPropertyList.cbegin(); it != idPropertyList.cend(); ++it) {
|
||||||
|
@@ -152,7 +152,8 @@ public:
|
|||||||
void destroy();
|
void destroy();
|
||||||
|
|
||||||
QString id() const;
|
QString id() const;
|
||||||
QString validId();
|
void ensureIdExists();
|
||||||
|
[[nodiscard]] QString validId();
|
||||||
void setIdWithRefactoring(const QString &id);
|
void setIdWithRefactoring(const QString &id);
|
||||||
void setIdWithoutRefactoring(const QString &id);
|
void setIdWithoutRefactoring(const QString &id);
|
||||||
static bool isValidId(const QString &id);
|
static bool isValidId(const QString &id);
|
||||||
|
@@ -80,10 +80,15 @@ QString ModelNode::id() const
|
|||||||
return m_internalNode->id;
|
return m_internalNode->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModelNode::ensureIdExists()
|
||||||
|
{
|
||||||
|
if (!hasId())
|
||||||
|
setIdWithoutRefactoring(model()->generateNewId(simplifiedTypeName()));
|
||||||
|
}
|
||||||
|
|
||||||
QString ModelNode::validId()
|
QString ModelNode::validId()
|
||||||
{
|
{
|
||||||
if (id().isEmpty())
|
ensureIdExists();
|
||||||
setIdWithRefactoring(model()->generateNewId(simplifiedTypeName()));
|
|
||||||
|
|
||||||
return id();
|
return id();
|
||||||
}
|
}
|
||||||
|
@@ -39,7 +39,7 @@ void QmlObjectNode::setVariantProperty(const PropertyName &name, const QVariant
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (timelineIsActive() && currentTimeline().isRecording()) {
|
if (timelineIsActive() && currentTimeline().isRecording()) {
|
||||||
modelNode().validId();
|
modelNode().ensureIdExists();
|
||||||
|
|
||||||
QmlTimelineKeyframeGroup timelineFrames(currentTimeline().keyframeGroup(modelNode(), name));
|
QmlTimelineKeyframeGroup timelineFrames(currentTimeline().keyframeGroup(modelNode(), name));
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ void QmlObjectNode::setVariantProperty(const PropertyName &name, const QVariant
|
|||||||
if (isInBaseState()) {
|
if (isInBaseState()) {
|
||||||
modelNode().variantProperty(name).setValue(value); //basestate
|
modelNode().variantProperty(name).setValue(value); //basestate
|
||||||
} else {
|
} else {
|
||||||
modelNode().validId();
|
modelNode().ensureIdExists();
|
||||||
|
|
||||||
QmlPropertyChanges changeSet(currentState().propertyChanges(modelNode()));
|
QmlPropertyChanges changeSet(currentState().propertyChanges(modelNode()));
|
||||||
Q_ASSERT(changeSet.isValid());
|
Q_ASSERT(changeSet.isValid());
|
||||||
@@ -88,7 +88,7 @@ void QmlObjectNode::setBindingProperty(const PropertyName &name, const QString &
|
|||||||
if (isInBaseState()) {
|
if (isInBaseState()) {
|
||||||
modelNode().bindingProperty(name).setExpression(expression); //basestate
|
modelNode().bindingProperty(name).setExpression(expression); //basestate
|
||||||
} else {
|
} else {
|
||||||
modelNode().validId();
|
modelNode().ensureIdExists();
|
||||||
|
|
||||||
QmlPropertyChanges changeSet(currentState().propertyChanges(modelNode()));
|
QmlPropertyChanges changeSet(currentState().propertyChanges(modelNode()));
|
||||||
Q_ASSERT(changeSet.isValid());
|
Q_ASSERT(changeSet.isValid());
|
||||||
@@ -338,7 +338,7 @@ void QmlObjectNode::ensureAliasExport()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (!isAliasExported()) {
|
if (!isAliasExported()) {
|
||||||
modelNode().validId();
|
modelNode().ensureIdExists();
|
||||||
ModelNode rootModelNode = view()->rootModelNode();
|
ModelNode rootModelNode = view()->rootModelNode();
|
||||||
rootModelNode.bindingProperty(modelNode().id().toUtf8()).
|
rootModelNode.bindingProperty(modelNode().id().toUtf8()).
|
||||||
setDynamicTypeNameAndExpression("alias", modelNode().id());
|
setDynamicTypeNameAndExpression("alias", modelNode().id());
|
||||||
|
Reference in New Issue
Block a user