You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

49 lines
1.8 KiB

#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