36 else if(!
m_current.nextSiblingElement().isNull())
69 for(
const QString &value :
qAsConst(m_nodeNames))
71 if(value.toLower() ==
name.toLower())
99 return m_file->open(QIODevice::WriteOnly | QIODevice::Text);
138 if(!
m_file->open(QIODevice::ReadOnly | QIODevice::Text))
158 #if TTK_QT_VERSION_CHECK(6,5,0)
170 #if TTK_QT_VERSION_CHECK(6,5,0)
190 return nodes.isEmpty() ? QString() : nodes.item(0).toElement().attribute(attrName);
196 return nodes.isEmpty() ? QString() : nodes.item(0).toElement().text();
208 const QDomElement &element = nodes.item(0).toElement();
209 const QDomNamedNodeMap &nodeMap = element.attributes();
211 for(
int i = 0; i < nodeMap.count(); ++i)
213 const QDomAttr &attr = nodeMap.item(i).toAttr();
217 v.
m_text = element.text();
230 for(
int i = 0; i < nodes.count(); ++i)
232 v << nodes.item(i).toElement().attribute(attrName);
246 for(
int i = 0; i < nodes.count(); ++i)
248 v << nodes.item(i).toElement().text();
262 for(
int i = 0; i < nodes.count(); ++i)
264 const QDomElement &element = nodes.item(i).toElement();
265 const QDomNamedNodeMap &nodeMap = element.attributes();
268 for(
int j = 0; j < nodeMap.count(); ++j)
270 const QDomAttr &attr = nodeMap.item(j).toAttr();
274 n.
m_text = element.text();
282 const QDomElement &domElement =
m_document->createElement(node);
289 QDomElement domElement =
m_document->createElement(node);
297 QDomElement domElement =
m_document->createElement(node);
305 const QDomElement &domElement =
m_document->createElement(node);
306 element.appendChild(domElement);
313 const QDomText &domText =
m_document->createTextNode(text);
314 domElement.appendChild(domText);
333 const QDomText &domText =
m_document->createTextNode(text);
334 domElement.appendChild(domText);
363 const QDomText &domText =
m_document->createTextNode(text);
364 domElement.appendChild(domText);
375 const QDomNode &node =
m_document->createProcessingInstruction(
"xml",
"version='1.0' encoding='UTF-8'");
383 case QMetaType::Int: element.setAttribute(attr.
m_key, attr.
m_value.toInt());
break;
384 case QMetaType::LongLong: element.setAttribute(attr.
m_key, attr.
m_value.toLongLong());
break;
385 case QMetaType::ULongLong: element.setAttribute(attr.
m_key, attr.
m_value.toULongLong());
break;
386 case QMetaType::Double: element.setAttribute(attr.
m_key, attr.
m_value.toDouble());
break;
387 case QMetaType::UInt: element.setAttribute(attr.
m_key, attr.
m_value.toUInt());
break;
388 case QMetaType::QString: element.setAttribute(attr.
m_key, attr.
m_value.toString());
break;
#define TTKStaticCast(x, y)
QDomDocument * m_document
QString readAttributeByTagName(const QString &node, const QString &attrName="value") const
bool fromFile(const QString &name)
QDomElement writeDomElement(QDomElement &element, const QString &node) const
QString nodeName(const QString &name) const noexcept
QStringList readMultiTextByTagName(const QString &node) const
QDomElement writeDomMultiElement(QDomElement &element, const QString &node, const TTKXmlNode &attrs) const
QSet< QString > m_nodeNames
bool fromString(const QString &data)
void createProcessingInstruction() const
TTKXmlNode readNodeByTagName(const QString &node) const
QDomElement createRoot(const QString &node) const
QDomNodeList findDomNodes(const QString &node) const
TTKXmlHelper(const QDomNode &root) noexcept
bool fromByteArray(const QByteArray &data)
QByteArray toByteArray() const
The class of the ttk xml attribute.
The class of the ttk xml node.
TTKXmlNodeList readMultiNodeByTagName(const QString &node) const
bool load(const QString &name)
QStringList readMultiAttributeByTagName(const QString &node, const QString &attrName="value") const
QDomNode next() const noexcept
void writeAttribute(QDomElement &element, const TTKXmlAttr &attr) const
virtual ~TTKAbstractXml()
QString readTextByTagName(const QString &node) const
#define QtVariantType(p)
Variant type.