| 2214 | } |
| 2215 | |
| 2216 | void addStructuredChildren(RDTreeWidgetItem *parent, const SDObject &parentObj) |
| 2217 | { |
| 2218 | for(const SDObject *obj : parentObj) |
| 2219 | { |
| 2220 | if(obj->type.flags & SDTypeFlags::Hidden) |
| 2221 | continue; |
| 2222 | |
| 2223 | QVariant name; |
| 2224 | |
| 2225 | if(parentObj.type.basetype == SDBasic::Array) |
| 2226 | name = QFormatStr("[%1]").arg(parent->childCount()); |
| 2227 | else |
| 2228 | name = obj->name; |
| 2229 | |
| 2230 | RDTreeWidgetItem *item = new RDTreeWidgetItem({name, QString()}); |
| 2231 | item->setTag(QVariant::fromValue((void *)obj)); |
| 2232 | |
| 2233 | item->setText(1, SDObject2Variant(obj, false)); |
| 2234 | |
| 2235 | if(obj->type.basetype == SDBasic::Chunk || obj->type.basetype == SDBasic::Struct || |
| 2236 | obj->type.basetype == SDBasic::Array) |
| 2237 | addStructuredChildren(item, *obj); |
| 2238 | |
| 2239 | parent->addChild(item); |
| 2240 | } |
| 2241 | } |
| 2242 | |
| 2243 | static void validateForJSON(const QVariant &data, QString path = QString()) |
| 2244 | { |