00001 // Copyright (C) 2009-2011 by Konrad Rosenbaum <konrad@silmor.de> 00002 // protected under the GNU GPL version 3 or at your option any newer. 00003 // See COPYING.GPL file that comes with this distribution. 00004 // 00005 00006 #ifndef MAGICSMOKE_DOMQUERY_H 00007 #define MAGICSMOKE_DOMQUERY_H 00008 00009 00010 #include <QDomElement> 00011 #include <QList> 00012 #include <QStringList> 00013 00015 class MDomNodeList:public QList<QDomNode> 00016 { 00017 public: 00018 MDomNodeList(){} 00019 MDomNodeList(const MDomNodeList&l):QList<QDomNode>(l){} 00020 MDomNodeList(const QList<QDomNode>&l):QList<QDomNode>(l){} 00021 MDomNodeList(const QDomNodeList&l){for(int i=0;i<l.size();i++)append(l.at(i));} 00022 MDomNodeList(const QDomNamedNodeMap&l){for(int i=0;i<l.size();i++)append(l.item(i));} 00023 00024 MDomNodeList& operator+=(const QDomNodeList&l) 00025 {for(int i=0;i<l.size();i++)append(l.at(i));return *this;} 00026 00027 MDomNodeList& operator+=(const QDomNamedNodeMap&l) 00028 {for(int i=0;i<l.size();i++)append(l.item(i));return *this;} 00029 }; 00030 00031 00055 class MDomQuery 00056 { 00057 public: 00059 MDomQuery(const QDomElement&start,QString path); 00060 00062 MDomQuery(const QDomDocument&start,QString path); 00063 00065 QString toString()const; 00067 QStringList toStringList()const; 00069 MDomNodeList toNodeList()const{return m_result;} 00070 00072 operator QString()const{return toString();} 00074 operator QStringList()const{return toStringList();} 00076 operator MDomNodeList()const{return m_result;} 00077 private: 00078 MDomNodeList m_result; 00079 00080 //helper for constructor 00081 void construct(const QDomElement&start,QString path); 00082 }; 00083 00084 #endif