QmlDesigner: use transition.ensureIdExists()

The noId fallback in displayName generates a wrong id and after
the error it goes back to the wrong fallback -> reslting in a loop.

Task-number: QDS-15129
Pick-to: qds/4.7
Change-Id: I984d5043c6f1edf6526e55148da2750f91632173
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Tim Jenssen
2025-04-03 20:02:52 +02:00
parent 2a545db890
commit 75d6354a37

View File

@@ -132,8 +132,10 @@ void TransitionEditorSettingsDialog::setupTransitions(const ModelNode &newTransi
return; return;
} }
for (const auto &transition : transitions) for (const auto &transition : transitions) {
transition.ensureIdExists();
addTransitionTab(transition); addTransitionTab(transition);
}
if (newTransition.isValid()) { if (newTransition.isValid()) {
m_currentTransition = newTransition; m_currentTransition = newTransition;
@@ -146,8 +148,10 @@ void TransitionEditorSettingsDialog::setupTransitions(const ModelNode &newTransi
void TransitionEditorSettingsDialog::addTransitionTab(const QmlTimeline &node) void TransitionEditorSettingsDialog::addTransitionTab(const QmlTimeline &node)
{ {
QTC_ASSERT(node.modelNode().hasId(), return);
auto transitionForm = new TransitionForm(this); auto transitionForm = new TransitionForm(this);
ui->timelineTab->addTab(transitionForm, node.modelNode().displayName()); ui->timelineTab->addTab(transitionForm, node.modelNode().id());
transitionForm->setTransition(node); transitionForm->setTransition(node);
connect(transitionForm, &TransitionForm::stateGroupChanged, this, [this](const ModelNode &transition, const ModelNode &stateGroup){ connect(transitionForm, &TransitionForm::stateGroupChanged, this, [this](const ModelNode &transition, const ModelNode &stateGroup){