本文整理汇总了C++中NodeAbstractProperty::isNodeListProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeAbstractProperty::isNodeListProperty方法的具体用法?C++ NodeAbstractProperty::isNodeListProperty怎么用?C++ NodeAbstractProperty::isNodeListProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeAbstractProperty
的用法示例。
在下文中一共展示了NodeAbstractProperty::isNodeListProperty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: nodeRemoved
void ModelToTextMerger::nodeRemoved(const ModelNode &removedNode, const NodeAbstractProperty &parentProperty, PropertyChangeFlags propertyChange)
{
if (!isInHierarchy(parentProperty))
return;
if (parentProperty.isDefaultProperty())
schedule(new RemoveNodeRewriteAction(removedNode));
else if (AbstractView::EmptyPropertiesRemoved == propertyChange)
schedule(new RemovePropertyRewriteAction(parentProperty));
else if (parentProperty.isNodeListProperty())
schedule(new RemoveNodeRewriteAction(removedNode));
}
示例2: nodeReparented
void ModelToTextMerger::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange)
{
if (isInHierarchy(oldPropertyParent) && isInHierarchy(newPropertyParent)) { // the node is moved
schedule(new ReparentNodeRewriteAction(node,
oldPropertyParent,
newPropertyParent,
propertyType(newPropertyParent)));
} else if (isInHierarchy(oldPropertyParent) && !isInHierarchy(newPropertyParent)) { // the node is removed from hierarchy
if (oldPropertyParent.isNodeProperty()) {
// ignore, the subsequent remove property will take care of all
} else if (oldPropertyParent.isNodeListProperty()) {
if (!oldPropertyParent.isDefaultProperty() && oldPropertyParent.toNodeListProperty().toModelNodeList().size() == 0) {
schedule(new RemovePropertyRewriteAction(oldPropertyParent));
} else {
schedule(new RemoveNodeRewriteAction(node));
}
} else {
schedule(new RemoveNodeRewriteAction(node));
}
} else if (!isInHierarchy(oldPropertyParent) && isInHierarchy(newPropertyParent)) { // the node is inserted into to hierarchy
switch (propertyChange) {
case AbstractView::PropertiesAdded:
schedule(new AddPropertyRewriteAction(newPropertyParent,
QmlTextGenerator(getPropertyOrder())(node),
propertyType(newPropertyParent),
node));
break;
case AbstractView::NoAdditionalChanges:
schedule(new ChangePropertyRewriteAction(newPropertyParent,
QmlTextGenerator(getPropertyOrder())(node),
propertyType(newPropertyParent),
node));
break;
case AbstractView::EmptyPropertiesRemoved:
break;
default:
Q_ASSERT(!"Unknown PropertyChange value");
}
} else {
// old is outside of hierarchy, new is outside of hierarchy, so who cares?
}
}