diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp index 7691710429f36cdaed96dfdf9c27353834ea9e37..be4a479ef88715baf69f6ae4a57fe3dfde6e4af5 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp @@ -72,7 +72,10 @@ void FormEditorItem::setup() { if (qmlItemNode().hasInstanceParent()) { setParentItem(scene()->itemForQmlItemNode(qmlItemNode().instanceParent().toQmlItemNode())); + setVisible(true); setOpacity(qmlItemNode().instanceValue("opacity").toDouble()); + } else if (!qmlItemNode().isRootNode()){ + setVisible(false); } setFlag(QGraphicsItem::ItemClipsChildrenToShape, qmlItemNode().instanceValue("clip").toBool()); diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp index 14058de2ac28241b946a1d9ea599e246907ff59f..cbe41a4ace52973127f585bd72dbd3ee6bbceffd 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp @@ -204,6 +204,8 @@ FormEditorItem *FormEditorScene::addFormEditorItem(const QmlItemNode &qmlItemNod manipulatorLayerItem()->update(); } + + return formEditorItem; } @@ -342,6 +344,12 @@ void FormEditorScene::reparentItem(const QmlItemNode &node, const QmlItemNode &n if (item->parentItem() != parentItem) { item->setParentItem(parentItem); + if (parentItem) { + item->setVisible(true); + } else { + item->setVisible(false); + } + item->update(); } } @@ -370,8 +378,10 @@ void FormEditorScene::clearFormEditorItems() QList<QGraphicsItem*> itemList(items()); foreach (QGraphicsItem *item, itemList) { - if (qgraphicsitem_cast<FormEditorItem* >(item)) + if (qgraphicsitem_cast<FormEditorItem* >(item)) { item->setParentItem(0); + item->setVisible(false); + } } foreach (QGraphicsItem *item, itemList) {