QDebug operator <<(QDebug debug, const ServerNodeInstance &instance) { if (instance.isValid()) { debug.nospace() << "ServerNodeInstance(" << instance.instanceId() << ", " << instance.internalObject() << ", " << instance.id() << ", " << instance.parent() << ')'; } else { debug.nospace() << "ServerNodeInstance(invalid)"; } return debug.space(); }
foreach (const InstancePropertyPair& property, changedPropertyList()) { const ServerNodeInstance instance = property.first; const QString propertyName = property.second; if (instance.isValid()) { if (instance.isRootNodeInstance() && (propertyName == "width" || propertyName == "height")) adjustSceneRect = true; if (propertyName.contains("anchors")) informationChangedInstanceSet.insert(instance); if (propertyName == "parent") { informationChangedInstanceSet.insert(instance); m_parentChangedSet.insert(instance); } propertyChangedList.append(property); } }
void Qt5InformationNodeInstanceServer::collectItemChangesAndSendChangeCommands() { static bool inFunction = false; if (!inFunction) { inFunction = true; QSet<ServerNodeInstance> informationChangedInstanceSet; QVector<InstancePropertyPair> propertyChangedList; bool adjustSceneRect = false; if (sgView()) { foreach (QSGItem *item, allItems()) { if (item && hasInstanceForObject(item)) { ServerNodeInstance instance = instanceForObject(item); DesignerSupport::DirtyType informationsDirty = DesignerSupport::DirtyType(DesignerSupport::TransformUpdateMask | DesignerSupport::Visible | DesignerSupport::ZValue | DesignerSupport::OpacityValue); if (DesignerSupport::dirty(item, informationsDirty)) informationChangedInstanceSet.insert(instance); if (DesignerSupport::dirty(item, DesignerSupport::ParentChanged)) { m_parentChangedSet.insert(instance); informationChangedInstanceSet.insert(instance); } // if (d->geometryChanged) { // if (instance.isRootNodeInstance()) // declarativeView()->scene()->setSceneRect(item->boundingRect()); // } } } foreach (const InstancePropertyPair& property, changedPropertyList()) { const ServerNodeInstance instance = property.first; const QString propertyName = property.second; if (instance.isValid()) { if (instance.isRootNodeInstance() && (propertyName == "width" || propertyName == "height")) adjustSceneRect = true; if (propertyName.contains("anchors")) informationChangedInstanceSet.insert(instance); propertyChangedList.append(property); } } resetAllItems(); clearChangedPropertyList(); sendTokenBack(); if (!informationChangedInstanceSet.isEmpty()) nodeInstanceClient()->informationChanged(createAllInformationChangedCommand(informationChangedInstanceSet.toList())); if (!propertyChangedList.isEmpty()) nodeInstanceClient()->valuesChanged(createValuesChangedCommand(propertyChangedList)); if (!m_parentChangedSet.isEmpty()) { sendChildrenChangedCommand(m_parentChangedSet.toList()); m_parentChangedSet.clear(); } // if (adjustSceneRect) { // QRectF boundingRect = rootNodeInstance().boundingRect(); // if (boundingRect.isValid()) { // declarativeView()->setSceneRect(boundingRect); // } // } if (!m_completedComponentList.isEmpty()) { nodeInstanceClient()->componentCompleted(createComponentCompletedCommand(m_completedComponentList)); m_completedComponentList.clear(); } slowDownRenderTimer(); nodeInstanceClient()->flush(); nodeInstanceClient()->synchronizeWithClientProcess(); } inFunction = false; }