本文整理汇总了C++中ModelNode::setListValue方法的典型用法代码示例。如果您正苦于以下问题:C++ ModelNode::setListValue方法的具体用法?C++ ModelNode::setListValue怎么用?C++ ModelNode::setListValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ModelNode
的用法示例。
在下文中一共展示了ModelNode::setListValue方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setObjectValue
bool ModelNode::setObjectValue(const QScriptValue& valuemap, bool writeToCache)
{
bool emitItemsChanged = false;
QScriptValueIterator it(valuemap);
while (it.hasNext()) {
it.next();
ModelNode *prev = properties.value(it.name());
ModelNode *value = new ModelNode(m_model);
QScriptValue v = it.value();
if (v.isArray()) {
value->isArray = true;
value->setListValue(v);
if (writeToCache && objectCache)
objectCache->setValue(it.name().toUtf8(), QVariant::fromValue(value->model(m_model)));
emitItemsChanged = true; // for now, too inefficient to check whether list and sublists have changed
} else {
value->values << v.toVariant();
if (writeToCache && objectCache)
objectCache->setValue(it.name().toUtf8(), value->values.last());
if (!emitItemsChanged && prev && prev->values.count() == 1
&& prev->values[0] != value->values.last()) {
emitItemsChanged = true;
}
}
if (properties.contains(it.name()))
delete properties[it.name()];
properties.insert(it.name(), value);
}
return emitItemsChanged;
}
示例2: setListValue
void ModelNode::setListValue(const QScriptValue& valuelist) {
QScriptValueIterator it(valuelist);
values.clear();
int size = valuelist.property(QLatin1String("length")).toInt32();
for (int i=0; i<size; i++) {
ModelNode *value = new ModelNode;
QScriptValue v = valuelist.property(i);
if (v.isArray()) {
value->isArray = true;
value->setListValue(v);
} else if (v.isObject()) {
value->setObjectValue(v);
} else {
value->values << v.toVariant();
}
values.append(qVariantFromValue(value));
}
}
示例3: setObjectValue
void ModelNode::setObjectValue(const QScriptValue& valuemap) {
QScriptValueIterator it(valuemap);
while (it.hasNext()) {
it.next();
ModelNode *value = new ModelNode;
QScriptValue v = it.value();
if (v.isArray()) {
value->isArray = true;
value->setListValue(v);
} else {
value->values << v.toVariant();
if (objectCache)
objectCache->setValue(it.name().toUtf8(), value->values.last());
}
if (properties.contains(it.name()))
delete properties[it.name()];
properties.insert(it.name(), value);
}
}