Skip to content

Commit 0e9d0e9

Browse files
committed
GUI: Refactor error data passing to use own class.
1 parent 5e14abf commit 0e9d0e9

8 files changed

Lines changed: 45 additions & 46 deletions

File tree

gui/csvreport.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,16 @@ void CsvReport::WriteFooter()
5151
// No footer for CSV report
5252
}
5353

54-
void CsvReport::WriteError(const QStringList &files, const QStringList &lines,
55-
const QString &id, const QString &severity, const QString &msg)
54+
void CsvReport::WriteError(const ErrorItem &error)
5655
{
57-
Q_UNUSED(id);
58-
5956
/*
6057
Error as CSV line
6158
gui/test.cpp,23,error,Mismatching allocation and deallocation: k
6259
*/
6360

6461
QString line;
65-
line += QString("%1,%2,").arg(files[files.size() - 1]).arg(lines[lines.size() - 1]);
66-
line += QString("%1,%2").arg(severity).arg(msg);
62+
line += QString("%1,%2,").arg(error.files[error.files.size() - 1]).arg(error.lines[error.lines.size() - 1]);
63+
line += QString("%1,%2").arg(error.severity).arg(error.msg);
6764

6865
mTxtWriter << line << endl;
6966
}

gui/csvreport.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,9 @@ class CsvReport : public Report
6060

6161
/**
6262
* @brief Write error to report.
63+
* @param error Error data.
6364
*/
64-
virtual void WriteError(const QStringList &files, const QStringList &lines,
65-
const QString &id, const QString &severity,
66-
const QString &msg);
65+
virtual void WriteError(const ErrorItem &error);
6766

6867
private:
6968

gui/report.h

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@
2727
/// @addtogroup GUI
2828
/// @{
2929

30+
/**
31+
* @brief A class containing error data.
32+
*/
33+
class ErrorItem
34+
{
35+
public:
36+
QStringList files;
37+
QStringList lines;
38+
QString id;
39+
QString severity;
40+
QString msg;
41+
};
42+
3043
/**
3144
* @brief A base class for reports.
3245
*/
@@ -73,10 +86,9 @@ class Report : public QObject
7386

7487
/**
7588
* @brief Write error to report.
89+
* @param error Error data.
7690
*/
77-
virtual void WriteError(const QStringList &files, const QStringList &lines,
78-
const QString &id, const QString &severity,
79-
const QString &msg) = 0;
91+
virtual void WriteError(const ErrorItem &error) = 0;
8092

8193
protected:
8294

gui/resultstree.cpp

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -601,8 +601,6 @@ void ResultsTree::SaveErrors(Report *report, QStandardItem *item)
601601
return;
602602
}
603603

604-
//qDebug() << item->text() << "has" << item->rowCount() << "errors";
605-
606604
for (int i = 0; i < item->rowCount(); i++)
607605
{
608606
QStandardItem *error = item->child(i, 0);
@@ -622,17 +620,15 @@ void ResultsTree::SaveErrors(Report *report, QStandardItem *item)
622620
//Convert it to QVariantMap
623621
QVariantMap data = userdata.toMap();
624622

625-
QString severity = ShowTypeToString(VariantToShowType(data["severity"]));
626-
QString message = data["message"].toString();
627-
QString id = data["id"].toString();
623+
ErrorItem item;
624+
item.severity = ShowTypeToString(VariantToShowType(data["severity"]));
625+
item.msg = data["message"].toString();
626+
item.id = data["id"].toString();
628627
QString file = StripPath(data["file"].toString(), true);
629628
QString line = data["line"].toString();
630629

631-
QStringList files;
632-
QStringList lines;
633-
634-
files << file;
635-
lines << line;
630+
item.files << file;
631+
item.lines << line;
636632

637633
for (int j = 0; j < error->rowCount(); j++)
638634
{
@@ -645,11 +641,11 @@ void ResultsTree::SaveErrors(Report *report, QStandardItem *item)
645641
file = StripPath(child_data["file"].toString(), true);
646642
line = child_data["line"].toString();
647643

648-
files << file;
649-
lines << line;
644+
item.files << file;
645+
item.lines << line;
650646
}
651647

652-
report->WriteError(files, lines, id, severity, message);
648+
report->WriteError(item);
653649
}
654650
}
655651

gui/txtreport.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,33 +51,30 @@ void TxtReport::WriteFooter()
5151
// No footer for txt report
5252
}
5353

54-
void TxtReport::WriteError(const QStringList &files, const QStringList &lines,
55-
const QString &id, const QString &severity, const QString &msg)
54+
void TxtReport::WriteError(const ErrorItem &error)
5655
{
57-
Q_UNUSED(id);
58-
5956
/*
6057
Error example from the core program in text
6158
[gui/test.cpp:23] -> [gui/test.cpp:14]: (error) Mismatching allocation and deallocation: k
6259
*/
6360

6461
QString line;
6562

66-
for (int i = 0; i < lines.size(); i++)
63+
for (int i = 0; i < error.lines.size(); i++)
6764
{
68-
line += QString("[%1:%2]").arg(files[i]).arg(lines[i]);
69-
if (i < lines.size() - 1 && lines.size() > 0)
65+
line += QString("[%1:%2]").arg(error.files[i]).arg(error.lines[i]);
66+
if (i < error.lines.size() - 1 && error.lines.size() > 0)
7067
{
7168
line += " -> ";
7269
}
7370

74-
if (i == lines.size() - 1)
71+
if (i == error.lines.size() - 1)
7572
{
7673
line += ": ";
7774
}
7875
}
7976

80-
line += QString("(%1) %2").arg(severity).arg(msg);
77+
line += QString("(%1) %2").arg(error.severity).arg(error.msg);
8178

8279
mTxtWriter << line << endl;
8380
}

gui/txtreport.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,9 @@ class TxtReport : public Report
5858

5959
/**
6060
* @brief Write error to report.
61+
* @param error Error data.
6162
*/
62-
virtual void WriteError(const QStringList &files, const QStringList &lines,
63-
const QString &id, const QString &severity,
64-
const QString &msg);
63+
virtual void WriteError(const ErrorItem &error);
6564

6665
private:
6766

gui/xmlreport.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,7 @@ void XmlReport::WriteFooter()
7878
mXmlWriter->writeEndDocument();
7979
}
8080

81-
void XmlReport::WriteError(const QStringList &files, const QStringList &lines,
82-
const QString &id, const QString &severity, const QString &msg)
81+
void XmlReport::WriteError(const ErrorItem &error)
8382
{
8483
/*
8584
Error example from the core program in xml
@@ -88,11 +87,11 @@ void XmlReport::WriteError(const QStringList &files, const QStringList &lines,
8887
*/
8988

9089
mXmlWriter->writeStartElement(ErrorElementName);
91-
mXmlWriter->writeAttribute(FilenameAttribute, files[files.size() - 1]);
92-
mXmlWriter->writeAttribute(LineAttribute, lines[lines.size() - 1]);
93-
mXmlWriter->writeAttribute(IdAttribute, id);
94-
mXmlWriter->writeAttribute(SeverityAttribute, severity);
95-
mXmlWriter->writeAttribute(MsgAttribute, msg);
90+
mXmlWriter->writeAttribute(FilenameAttribute, error.files[error.files.size() - 1]);
91+
mXmlWriter->writeAttribute(LineAttribute, error.lines[error.lines.size() - 1]);
92+
mXmlWriter->writeAttribute(IdAttribute, error.id);
93+
mXmlWriter->writeAttribute(SeverityAttribute, error.severity);
94+
mXmlWriter->writeAttribute(MsgAttribute, error.msg);
9695
mXmlWriter->writeEndElement();
9796
}
9897

gui/xmlreport.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ class XmlReport : public Report
6565

6666
/**
6767
* @brief Write error to report.
68+
* @param error Error data.
6869
*/
69-
virtual void WriteError(const QStringList &files, const QStringList &lines,
70-
const QString &id, const QString &severity, const QString &msg);
70+
virtual void WriteError(const ErrorItem &error);
7171

7272
/**
7373
* @brief Read contents of the report file.

0 commit comments

Comments
 (0)