diff options
author | Marco Bubke <marco.bubke@nokia.com> | 2010-09-21 16:21:35 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2010-09-24 09:10:46 +0200 |
commit | d2b3258e5938372c96bf9603fbe8a0143b9389c9 (patch) | |
tree | 3269c8f931b722110e6e2c20a40d07fc72e06d34 /src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp | |
parent | 48ff3f7a2938a271d2f91c0dc2aa5edb8765e13e (diff) | |
download | qt-creator-d2b3258e5938372c96bf9603fbe8a0143b9389c9.tar.gz |
QmlDesigner.FormEditor: Test if a qml item is valid to prevent crashes
Diffstat (limited to 'src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp index 342bc7ee5d..14058de2ac 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp @@ -128,12 +128,15 @@ AbstractFormEditorTool* FormEditorScene::currentTool() const //This method calculates the possible parent for reparent FormEditorItem* FormEditorScene::calulateNewParent(FormEditorItem *formEditorItem) { - QList<QGraphicsItem *> list = items(formEditorItem->qmlItemNode().instanceBoundingRect().center()); - foreach (QGraphicsItem *graphicsItem, list) { - if (qgraphicsitem_cast<FormEditorItem*>(graphicsItem) && - graphicsItem->collidesWithItem(formEditorItem, Qt::ContainsItemShape)) - return qgraphicsitem_cast<FormEditorItem*>(graphicsItem); + if (formEditorItem->qmlItemNode().isValid()) { + QList<QGraphicsItem *> list = items(formEditorItem->qmlItemNode().instanceBoundingRect().center()); + foreach (QGraphicsItem *graphicsItem, list) { + if (qgraphicsitem_cast<FormEditorItem*>(graphicsItem) && + graphicsItem->collidesWithItem(formEditorItem, Qt::ContainsItemShape)) + return qgraphicsitem_cast<FormEditorItem*>(graphicsItem); + } } + return 0; } |