forked from qt-creator/qt-creator
QmlDesigner: Fix crash
Change-Id: I0b2080c19868efd92427f47bd344412e6460e126 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
This commit is contained in:
@@ -246,7 +246,7 @@ void QmlModelNodeProxy::handleInstancePropertyChanged(const ModelNode &modelNode
|
|||||||
const QmlObjectNode qmlObjectNode(modelNode);
|
const QmlObjectNode qmlObjectNode(modelNode);
|
||||||
|
|
||||||
for (const auto &item : qAsConst(m_subselection)) {
|
for (const auto &item : qAsConst(m_subselection)) {
|
||||||
if (item->isRelevantModelNode(modelNode)) {
|
if (item && item->isRelevantModelNode(modelNode)) {
|
||||||
if (!modelNode.hasProperty(propertyName)
|
if (!modelNode.hasProperty(propertyName)
|
||||||
|| modelNode.property(propertyName).isBindingProperty()) {
|
|| modelNode.property(propertyName).isBindingProperty()) {
|
||||||
item->setValueFromModel(propertyName, qmlObjectNode.instanceValue(propertyName));
|
item->setValueFromModel(propertyName, qmlObjectNode.instanceValue(propertyName));
|
||||||
@@ -260,7 +260,7 @@ void QmlModelNodeProxy::handleInstancePropertyChanged(const ModelNode &modelNode
|
|||||||
void QmlModelNodeProxy::handleBindingPropertyChanged(const BindingProperty &property)
|
void QmlModelNodeProxy::handleBindingPropertyChanged(const BindingProperty &property)
|
||||||
{
|
{
|
||||||
for (const auto &item : qAsConst(m_subselection)) {
|
for (const auto &item : qAsConst(m_subselection)) {
|
||||||
if (item->isRelevantModelNode(property.parentModelNode())) {
|
if (item && item->isRelevantModelNode(property.parentModelNode())) {
|
||||||
QmlObjectNode objectNode(item->modelNode());
|
QmlObjectNode objectNode(item->modelNode());
|
||||||
if (objectNode.modelNode().property(property.name()).isBindingProperty())
|
if (objectNode.modelNode().property(property.name()).isBindingProperty())
|
||||||
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
||||||
@@ -273,7 +273,7 @@ void QmlModelNodeProxy::handleBindingPropertyChanged(const BindingProperty &prop
|
|||||||
void QmlModelNodeProxy::handleVariantPropertyChanged(const VariantProperty &property)
|
void QmlModelNodeProxy::handleVariantPropertyChanged(const VariantProperty &property)
|
||||||
{
|
{
|
||||||
for (const auto &item : qAsConst(m_subselection)) {
|
for (const auto &item : qAsConst(m_subselection)) {
|
||||||
if (item->isRelevantModelNode(property.parentModelNode())) {
|
if (item && item->isRelevantModelNode(property.parentModelNode())) {
|
||||||
QmlObjectNode objectNode(item->modelNode());
|
QmlObjectNode objectNode(item->modelNode());
|
||||||
if (objectNode.modelNode().property(property.name()).isBindingProperty())
|
if (objectNode.modelNode().property(property.name()).isBindingProperty())
|
||||||
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
||||||
@@ -286,7 +286,7 @@ void QmlModelNodeProxy::handleVariantPropertyChanged(const VariantProperty &prop
|
|||||||
void QmlModelNodeProxy::handlePropertiesRemoved(const AbstractProperty &property)
|
void QmlModelNodeProxy::handlePropertiesRemoved(const AbstractProperty &property)
|
||||||
{
|
{
|
||||||
for (const auto &item : qAsConst(m_subselection)) {
|
for (const auto &item : qAsConst(m_subselection)) {
|
||||||
if (item->isRelevantModelNode(property.parentModelNode())) {
|
if (item && item->isRelevantModelNode(property.parentModelNode())) {
|
||||||
QmlObjectNode objectNode(item->modelNode());
|
QmlObjectNode objectNode(item->modelNode());
|
||||||
item->resetValue(property.name());
|
item->resetValue(property.name());
|
||||||
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
item->setValueFromModel(property.name(), objectNode.instanceValue(property.name()));
|
||||||
|
Reference in New Issue
Block a user