Skip to content
Snippets Groups Projects
Commit dd14b75f authored by Marco Bubke's avatar Marco Bubke
Browse files

Change id removing

parent 355d5a32
No related branches found
No related tags found
No related merge requests found
...@@ -106,27 +106,30 @@ static void specialRemoveParentForQmlGraphicsItemChildren(QObject *object) ...@@ -106,27 +106,30 @@ static void specialRemoveParentForQmlGraphicsItemChildren(QObject *object)
void ObjectNodeInstance::destroy() void ObjectNodeInstance::destroy()
{ {
// Remove from old property if (deleteHeldInstance()) {
if (object() && modelNode().isValid() && modelNode().parentProperty().isValid()) { // Remove from old property
NodeAbstractProperty parentProperty = modelNode().parentProperty(); if (object() && modelNode().isValid() && modelNode().parentProperty().isValid()) {
ModelNode parentNode = parentProperty.parentModelNode(); NodeAbstractProperty parentProperty = modelNode().parentProperty();
if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) { ModelNode parentNode = parentProperty.parentModelNode();
NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode); if (parentNode.isValid() && nodeInstanceView()->hasInstanceForNode(parentNode)) {
if (parentInstance.isQmlGraphicsItem() && isChildrenProperty(parentProperty.name())) { NodeInstance parentInstance = nodeInstanceView()->instanceForNode(parentNode);
specialRemoveParentForQmlGraphicsItemChildren(object()); if (parentInstance.isQmlGraphicsItem() && isChildrenProperty(parentProperty.name())) {
} else { specialRemoveParentForQmlGraphicsItemChildren(object());
removeFromOldProperty(object(), parentInstance.internalObject(), parentProperty.name()); } else {
removeFromOldProperty(object(), parentInstance.internalObject(), parentProperty.name());
}
} }
} }
}
if (deleteHeldInstance() && object()) { if (!m_id.isEmpty()) {
if (!object()->objectName().isEmpty()) { context()->engine()->rootContext()->setContextProperty(m_id, 0);
context()->engine()->rootContext()->setContextProperty(object()->objectName(), 0); }
if (object()) {
QObject *obj = object();
m_object.clear();
delete obj;
} }
QObject *obj = object();
m_object.clear();
delete obj;
} }
} }
...@@ -152,15 +155,15 @@ void ObjectNodeInstance::setNodeInstance(NodeInstanceView *view) ...@@ -152,15 +155,15 @@ void ObjectNodeInstance::setNodeInstance(NodeInstanceView *view)
void ObjectNodeInstance::setId(const QString &id) void ObjectNodeInstance::setId(const QString &id)
{ {
if (!object()->objectName().isEmpty()) { if (!m_id.isEmpty()) {
context()->engine()->rootContext()->setContextProperty(object()->objectName(), 0); context()->engine()->rootContext()->setContextProperty(m_id, 0);
} }
if (!id.isEmpty()) { if (!id.isEmpty()) {
context()->engine()->rootContext()->setContextProperty(id, object()); // will also force refresh of all bindings context()->engine()->rootContext()->setContextProperty(id, object()); // will also force refresh of all bindings
} }
object()->setObjectName(id); m_id = id;
} }
bool ObjectNodeInstance::isQmlGraphicsItem() const bool ObjectNodeInstance::isQmlGraphicsItem() const
......
...@@ -174,6 +174,7 @@ private: ...@@ -174,6 +174,7 @@ private:
QHash<QString, QVariant> m_resetValueHash; QHash<QString, QVariant> m_resetValueHash;
QHash<QString, NodeInstance> m_modelAbstractPropertyHash; QHash<QString, NodeInstance> m_modelAbstractPropertyHash;
ModelNode m_modelNode; ModelNode m_modelNode;
QString m_id;
QWeakPointer<NodeInstanceView> m_nodeInstanceView; QWeakPointer<NodeInstanceView> m_nodeInstanceView;
bool m_deleteHeldInstance; bool m_deleteHeldInstance;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment