void ObjectNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParentInstance, const PropertyName &oldParentProperty, const ObjectNodeInstance::Pointer &newParentInstance, const PropertyName &newParentProperty) { if (oldParentInstance && !oldParentInstance->ignoredProperties().contains(oldParentProperty)) { removeFromOldProperty(object(), oldParentInstance->object(), oldParentProperty); m_parentProperty.clear(); } if (newParentInstance && !newParentInstance->ignoredProperties().contains(newParentProperty)) { m_parentProperty = newParentProperty; addToNewProperty(object(), newParentInstance->object(), newParentProperty); } }
void ObjectNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParentInstance, const QString &oldParentProperty, const ObjectNodeInstance::Pointer &newParentInstance, const QString &newParentProperty) { if (oldParentInstance) { removeFromOldProperty(object(), oldParentInstance->object(), oldParentProperty); m_parentProperty.clear(); } if (newParentInstance) { m_parentProperty = newParentProperty; addToNewProperty(object(), newParentInstance->object(), newParentProperty); } }
int NodeInstanceSignalSpy::qt_metacall(QMetaObject::Call call, int methodId, void **a) { if (call == QMetaObject::InvokeMetaMethod && methodId > QObject::staticMetaObject.methodCount()) { ObjectNodeInstance::Pointer nodeInstance = m_objectNodeInstance.toStrongRef(); if (nodeInstance && nodeInstance->nodeInstanceServer() && nodeInstance->isValid()) { nodeInstance->nodeInstanceServer()->notifyPropertyChange(nodeInstance->instanceId(), m_indexPropertyHash.value(methodId)); } } return QObject::qt_metacall(call, methodId, a); }
void NodeInstanceSignalSpy::setObjectNodeInstance(const ObjectNodeInstance::Pointer &nodeInstance) { methodeOffset = QObject::staticMetaObject.methodCount() + 1; registerObject(nodeInstance->object()); m_objectNodeInstance = nodeInstance; }
void ObjectNodeInstance::initializePropertyWatcher(const ObjectNodeInstance::Pointer &objectNodeInstance) { if (!objectNodeInstance->modelNode().metaInfo().isComponent()) { // TODO: this is a nasty workaround which needs to be removed const QMetaObject *metaObject = objectNodeInstance->object()->metaObject(); m_metaObject = new NodeInstanceMetaObject(objectNodeInstance, nodeInstanceView()->engine()); for(int propertyIndex = QObject::staticMetaObject.propertyCount(); propertyIndex < metaObject->propertyCount(); propertyIndex++) { if (QDeclarativeMetaType::isQObject(metaObject->property(propertyIndex).userType())) { QObject *propertyObject = QDeclarativeMetaType::toQObject(metaObject->property(propertyIndex).read(objectNodeInstance->object())); if (propertyObject && hasPropertiesWitoutNotifications(propertyObject->metaObject())) { new NodeInstanceMetaObject(objectNodeInstance, propertyObject, metaObject->property(propertyIndex).name(), nodeInstanceView()->engine()); } } } } else { qWarning() << "dynamic properties are not supported for components"; } m_signalSpy.setObjectNodeInstance(objectNodeInstance); }
void QmlGraphicsItemNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParentInstance, const QString &oldParentProperty, const ObjectNodeInstance::Pointer &newParentInstance, const QString &newParentProperty) { if (oldParentInstance && oldParentInstance->isPositioner()) { setInPositioner(false); setMovable(true); } GraphicsObjectNodeInstance::reparent(oldParentInstance, oldParentProperty, newParentInstance, newParentProperty); if (newParentInstance && newParentInstance->isPositioner()) { setInPositioner(true); setMovable(false); } if (oldParentInstance && oldParentInstance->isPositioner() && !(newParentInstance && newParentInstance->isPositioner())) { if (!hasBindingForProperty("x")) setPropertyVariant("x", m_x); if (!hasBindingForProperty("y")) setPropertyVariant("y", m_y); } refresh(); }
void NodeInstanceMetaObject::notifyPropertyChange(int id) { ObjectNodeInstance::Pointer objectNodeInstance = m_nodeInstance.toStrongRef(); if (objectNodeInstance && objectNodeInstance->nodeInstanceServer()) { if (id < type()->propertyOffset()) { objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), m_prefix + property(id).name()); } else { objectNodeInstance->nodeInstanceServer()->notifyPropertyChange(objectNodeInstance->instanceId(), m_prefix + name(id - type()->propertyOffset())); } } }
void ObjectNodeInstance::initialize(const ObjectNodeInstance::Pointer &objectNodeInstance) { initializePropertyWatcher(objectNodeInstance); QmlPrivateGate::registerNodeInstanceMetaObject(objectNodeInstance->object(), objectNodeInstance->nodeInstanceServer()->engine()); }
bool QmlStateNodeInstance::resetStateProperty(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QVariant & /* resetValue */) { return stateObject()->removeEntryFromRevertList(target->object(), QString::fromUtf8(propertyName)); }
bool QmlStateNodeInstance::updateStateBinding(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QString &expression) { return stateObject()->changeValueInRevertList(target->object(), QString::fromUtf8(propertyName), expression); }
bool QmlStateNodeInstance::updateStateVariant(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QVariant &value) { return stateObject()->changeValueInRevertList(target->object(), QString::fromUtf8(propertyName), value); }
bool QmlStateNodeInstance::updateStateVariant(const ObjectNodeInstance::Pointer &target, const QString &propertyName, const QVariant &value) { return stateObject()->changeValueInRevertList(target->object(), propertyName.toLatin1(), value); }
bool QmlStateNodeInstance::updateStateBinding(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QString &expression) { return QmlPrivateGate::States::updateStateBinding(object(), target->object(), propertyName, expression); }
bool QmlStateNodeInstance::updateStateVariant(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QVariant &value) { return QmlPrivateGate::States::changeValueInRevertList(object(), target->object(), propertyName, value); }
bool QmlStateNodeInstance::resetStateProperty(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QVariant & resetValue) { return QmlPrivateGate::States::resetStateProperty(object(), target->object(), propertyName, resetValue); }