From 49523980f834466e355069dd0175b6b99bce734e Mon Sep 17 00:00:00 2001
From: Joachim Wuttke <j.wuttke@fz-juelich.de>
Date: Wed, 10 Jul 2024 19:34:48 +0200
Subject: [PATCH] provide readTagged...

---
 GUI/Model/Util/UtilXML.cpp | 43 ++++++++++++++++++++++++++++++++++++++
 GUI/Model/Util/UtilXML.h   |  8 +++++++
 2 files changed, 51 insertions(+)

diff --git a/GUI/Model/Util/UtilXML.cpp b/GUI/Model/Util/UtilXML.cpp
index b574c611cbb..d8bea517c02 100644
--- a/GUI/Model/Util/UtilXML.cpp
+++ b/GUI/Model/Util/UtilXML.cpp
@@ -140,3 +140,46 @@ complex_t XML::readC(QXmlStreamReader* reader, const QString& attributeBaseName)
     double i = readDouble(reader, attributeBaseName + "Im");
     return {r, i};
 }
+
+bool XML::readTaggedBool(QXmlStreamReader* reader, const QString& tag)
+{
+    bool result = XML::readBool(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+int XML::readTaggedInt(QXmlStreamReader* reader, const QString& tag)
+{
+    int result = XML::readInt(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+unsigned XML::readTaggedUInt(QXmlStreamReader* reader, const QString& tag)
+{
+    unsigned result = XML::readUInt(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+size_t XML::readTaggedSize(QXmlStreamReader* reader, const QString& tag)
+{
+    size_t result = XML::readSize(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+double XML::readTaggedDouble(QXmlStreamReader* reader, const QString& tag)
+{
+    double result = XML::readDouble(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+QString XML::readTaggedString(QXmlStreamReader* reader, const QString& tag)
+{
+    QString result = XML::readString(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
+QColor XML::readTaggedColor(QXmlStreamReader* reader, const QString& tag)
+{
+    QColor result = XML::readColor(reader, XML::Attrib::value);
+    XML::gotoEndElementOfTag(reader, tag);
+    return result;
+}
diff --git a/GUI/Model/Util/UtilXML.h b/GUI/Model/Util/UtilXML.h
index 43901e1912b..253a7024e49 100644
--- a/GUI/Model/Util/UtilXML.h
+++ b/GUI/Model/Util/UtilXML.h
@@ -70,6 +70,14 @@ double readDouble(QXmlStreamReader* reader, const QString& attributeName);
 QString readString(QXmlStreamReader* reader, const QString& attributeName);
 QColor readColor(QXmlStreamReader* reader, const QString& attributeName);
 
+bool readTaggedBool(QXmlStreamReader* reader, const QString& tag);
+int readTaggedInt(QXmlStreamReader* reader, const QString& tag);
+unsigned readTaggedUInt(QXmlStreamReader* reader, const QString& tag);
+size_t readTaggedSize(QXmlStreamReader* reader, const QString& tag);
+double readTaggedDouble(QXmlStreamReader* reader, const QString& tag);
+QString readTaggedString(QXmlStreamReader* reader, const QString& tag);
+QColor readTaggedColor(QXmlStreamReader* reader, const QString& tag);
+
 // TODO: will the following remain unused?
 R3 readR3(QXmlStreamReader* reader, const QString& attributeBaseName);
 complex_t readC(QXmlStreamReader* reader, const QString& attributeBaseName);
-- 
GitLab