1919#include < QFile>
2020#include < QXmlStreamWriter>
2121#include < qdebug>
22+ #include " erroritem.h"
2223#include " xmlreport.h"
2324
2425static const char ResultElementName[] = " results" ;
@@ -96,13 +97,14 @@ void XmlReport::WriteError(const ErrorItem &error)
9697 mXmlWriter ->writeEndElement ();
9798}
9899
99- void XmlReport::Read ()
100+ QList<ErrorLine> XmlReport::Read ()
100101{
102+ QList<ErrorLine> errors;
101103 bool insideResults = false ;
102104 if (!mXmlReader )
103105 {
104106 qDebug () << " You must Open() the file before reading it!" ;
105- return ;
107+ return errors ;
106108 }
107109 while (!mXmlReader ->atEnd ())
108110 {
@@ -114,7 +116,10 @@ void XmlReport::Read()
114116
115117 // Read error element from inside result element
116118 if (insideResults && mXmlReader ->name () == ErrorElementName)
117- ReadError (mXmlReader );
119+ {
120+ ErrorLine line = ReadError (mXmlReader );
121+ errors.append (line);
122+ }
118123 break ;
119124
120125 case QXmlStreamReader::EndElement:
@@ -135,18 +140,20 @@ void XmlReport::Read()
135140 break ;
136141 }
137142 }
143+ return errors;
138144}
139145
140- void XmlReport::ReadError (QXmlStreamReader *reader)
146+ ErrorLine XmlReport::ReadError (QXmlStreamReader *reader)
141147{
148+ ErrorLine line;
142149 if (reader->name ().toString () == ErrorElementName)
143150 {
144151 QXmlStreamAttributes attribs = reader->attributes ();
145- QString filename = attribs.value (" " , FilenameAttribute).toString ();
146- QString line = attribs.value (" " , LineAttribute).toString ();
147- QString id = attribs.value (" " , IdAttribute).toString ();
148- QString severity = attribs.value (" " , SeverityAttribute).toString ();
149- QString msg = attribs.value (" " , MsgAttribute).toString ();
150- qDebug () << " Error: " << filename << " " << line << " " << id << " " << severity << " " << msg;
152+ line.file = attribs.value (" " , FilenameAttribute).toString ();
153+ line.line = attribs.value (" " , LineAttribute).toString ();
154+ line.id = attribs.value (" " , IdAttribute).toString ();
155+ line.severity = attribs.value (" " , SeverityAttribute).toString ();
156+ line.msg = attribs.value (" " , MsgAttribute).toString ();
151157 }
158+ return line;
152159}
0 commit comments