#ifndef XMLTRACKBALLCONFIGREADER_H #define XMLTRACKBALLCONFIGREADER_H #include <QObject> #include <QtXml> #include "logger/Logger.h" #include "model/csm/core/trackballComponent/TrackballItem.h" /*****************************************************************************/ /** * @brief * @author Mohammad Mohsen Talaie * @details * @date 13 JAN 2021 */ /*****************************************************************************/ class XmlTrackballConfigReader { private: inline void handleError(ESeverityLevel::eSeverityLevel severityLevel, ELogID::eLogID logID, QString logText, bool emitThrow = true) const; QDomDocument _xmlDoc; QString _xmlAddress; QDomElement _root; QDomElement _trackball; QList<QDomElement> _trackballItems; public: XmlTrackballConfigReader(QString address); QDomElement getTrackball(); QList<QDomElement> getTrackballItems(); static QDomElement getChildElement(const QDomElement fatherElement, const QString elementName); static QList<QDomElement> getChildrenElemets(const QDomElement fatherElement, const QString elementsName); static QString getElementAttribute(const QDomElement element, const QString attributeName); static bool getElementBooleanAttribute(QDomElement element, QString bollAttrName); static void initTrackballItem(TrackballItem* tbItem, const QDomElement itemElement); static void initTrackballItems(QList<TrackballItem*> trackballItems, const QDomElement trackballElement); static TrackballItem* findItem(const QList<TrackballItem*> trackballItems, const QString name); }; #endif //XMLTRACKBALLCONFIGREADER_H