Filter properties that do not exist in the new node type

Task-number: QDS-2071
Change-Id: Iedc7f65e3cebfed8410dda80707910a633c6670f
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Michael Brüning
2020-05-28 15:16:41 +02:00
parent e5d892c74a
commit 38eaada47d

View File

@@ -58,7 +58,7 @@ static void splitIdInBaseNameAndNumber(const QString &id, QString *baseId, int *
void StylesheetMerger::syncNodeProperties(ModelNode &outputNode, const ModelNode &inputNode, bool skipDuplicates)
{
foreach (const NodeProperty &nodeProperty, inputNode.nodeProperties()) {
for (const NodeProperty &nodeProperty : inputNode.nodeProperties()) {
ModelNode oldNode = nodeProperty.modelNode();
if (m_templateView->hasId(oldNode.id()) && skipDuplicates)
continue;
@@ -73,8 +73,8 @@ void StylesheetMerger::syncNodeProperties(ModelNode &outputNode, const ModelNode
void StylesheetMerger::syncNodeListProperties(ModelNode &outputNode, const ModelNode &inputNode, bool skipDuplicates)
{
foreach (const NodeListProperty &nodeListProperty, inputNode.nodeListProperties()) {
foreach (ModelNode node, nodeListProperty.toModelNodeList()) {
for (const NodeListProperty &nodeListProperty : inputNode.nodeListProperties()) {
for (ModelNode node : nodeListProperty.toModelNodeList()) {
if (m_templateView->hasId(node.id()) && skipDuplicates)
continue;
ModelNode newNode = createReplacementNode(node, node);
@@ -85,7 +85,7 @@ void StylesheetMerger::syncNodeListProperties(ModelNode &outputNode, const Model
void StylesheetMerger::syncVariantProperties(ModelNode &outputNode, const ModelNode &inputNode)
{
foreach (const VariantProperty &variantProperty, inputNode.variantProperties()) {
for (const VariantProperty &variantProperty : inputNode.variantProperties()) {
outputNode.variantProperty(variantProperty.name()).setValue(variantProperty.value());
}
}
@@ -99,7 +99,7 @@ void StylesheetMerger::syncAuxiliaryProperties(ModelNode &outputNode, const Mode
void StylesheetMerger::syncBindingProperties(ModelNode &outputNode, const ModelNode &inputNode)
{
foreach (const BindingProperty &bindingProperty, inputNode.bindingProperties()) {
for (const BindingProperty &bindingProperty : inputNode.bindingProperties()) {
outputNode.bindingProperty(bindingProperty.name()).setExpression(bindingProperty.expression());
}
}
@@ -116,7 +116,7 @@ void StylesheetMerger::syncId(ModelNode &outputNode, ModelNode &inputNode)
void StylesheetMerger::setupIdRenamingHash()
{
foreach (const ModelNode &node, m_templateView->rootModelNode().allSubModelNodesAndThisNode()) {
for (const ModelNode &node : m_templateView->rootModelNode().allSubModelNodesAndThisNode()) {
if (!node.id().isEmpty()) {
QString newId = node.id();
QString baseId;
@@ -137,10 +137,12 @@ ModelNode StylesheetMerger::createReplacementNode(const ModelNode& styleNode, Mo
{
QList<QPair<PropertyName, QVariant> > propertyList;
QList<QPair<PropertyName, QVariant> > variantPropertyList;
foreach (const VariantProperty &variantProperty, modelNode.variantProperties()) {
NodeMetaInfo nodeMetaInfo = m_templateView->model()->metaInfo(styleNode.type());
for (const VariantProperty &variantProperty : modelNode.variantProperties()) {
if (nodeMetaInfo.hasProperty(variantProperty.name()))
propertyList.append(QPair<PropertyName, QVariant>(variantProperty.name(), variantProperty.value()));
}
NodeMetaInfo nodeMetaInfo = m_templateView->model()->metaInfo(styleNode.type());
ModelNode newNode(m_templateView->createModelNode(styleNode.type(), nodeMetaInfo.majorVersion(), nodeMetaInfo.minorVersion(),
propertyList, variantPropertyList, styleNode.nodeSource(), styleNode.nodeSourceType()));
@@ -303,8 +305,7 @@ void StylesheetMerger::adjustNodeIndex(ModelNode &node)
void StylesheetMerger::applyStyleProperties(ModelNode &templateNode, const ModelNode &styleNode)
{
QRegExp regEx("[a-z]", Qt::CaseInsensitive);
foreach (const VariantProperty &variantProperty, styleNode.variantProperties()) {
// check for existing bindings with that property name
for (const VariantProperty &variantProperty : styleNode.variantProperties()) {
if (templateNode.hasBindingProperty(variantProperty.name())) {
// if the binding does not contain any alpha letters (i.e. binds to a term rather than a property,
// replace it with the corresponding variant property.
@@ -397,7 +398,7 @@ void StylesheetMerger::merge()
//removePropertyIfExists(templateNode, "height");
}
}
transaction.commit();
}
}
}