diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2019-07-05 11:59:59 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2019-07-09 12:35:28 +0000 |
commit | cd8b064d7674af3660cbda51836bf09aa1c9325f (patch) | |
tree | c8973db5eb073ef740722674923ca2aed28c93e4 /src | |
parent | afc53cd54d90e9aa8eac72c9cb6be144baf2b96b (diff) |
QmlDesigner: Fix potential crashes
Change-Id: Ieb3211090d16150943fd4d2dd15a4a63ecdae078
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp b/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp index ba520a1ca3..a1629c0b5b 100644 --- a/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp +++ b/src/plugins/qmldesigner/components/componentcore/layoutingridlayout.cpp @@ -179,6 +179,8 @@ void LayoutInGridLayout::doIt() initializeCells(); markUsedCells(); + QTC_ASSERT(m_parentNode.isValid(), return); + if (QmlItemNode::isValidQmlItemNode(m_selectionContext.firstSelectedModelNode())) { const QmlItemNode qmlItemNode = QmlItemNode(m_selectionContext.firstSelectedModelNode()); @@ -256,6 +258,10 @@ void LayoutInGridLayout::collectItemNodes() m_qmlItemNodes.append(itemNode); } } + + if (m_qmlItemNodes.isEmpty()) + return; + m_parentNode = m_qmlItemNodes.constFirst().instanceParentItem(); } diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index 53e29b7157..cc44f9c448 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -625,9 +625,10 @@ bool QmlObjectNode::hasInstanceParent() const bool QmlObjectNode::hasInstanceParentItem() const { - return nodeInstance().parentId() >= 0 - && nodeInstanceView()->hasInstanceForId(nodeInstance().parentId()) - && QmlItemNode::isItemOrWindow(view()->modelNodeForInternalId(nodeInstance().parentId())); + return isValid() + && nodeInstance().parentId() >= 0 + && nodeInstanceView()->hasInstanceForId(nodeInstance().parentId()) + && QmlItemNode::isItemOrWindow(view()->modelNodeForInternalId(nodeInstance().parentId())); } |