I wrote some method which returns QDomNode :
private: QDomNode createNode(QStandardItem * item) {
if (item == NULL)
return QDomNode();
QDomNode node;
node.toElement().setTagName(item->text());
// write attributes
QStandardItem * parent = item->parent();
if (parent == NULL)
parent = invisibleRootItem();
for (int i = 1; i < columnCount(); i++) {
QStandardItem * columnItem = parent->child(item->row(), i);
if (columnItem == NULL)
continue;
QString sValue = columnItem->text();
if (sValue.isEmpty())
continue;
node.toElement().setAttribute(headerData(i,Qt::Horizontal,Qt::DisplayRole).toString(), sValue);
}
int childCount = item->rowCount();
for (int i = 0; i < childCount; i++) {
QDomNode childNode = createNode(item->child(i));
if (childNode.isNull())
continue;
node.appendChild(childNode);
}
return node;
}
But it always returns a null node, no matter of arguments. What am I doing wrong ?
↧