2525#include < QMessageBox>
2626#include < QFileInfo>
2727#include < QClipboard>
28+ #include " erroritem.h"
2829#include " resultstree.h"
2930#include " xmlreport.h"
3031
@@ -67,77 +68,71 @@ QStandardItem *ResultsTree::CreateItem(const QString &name)
6768 return item;
6869}
6970
70- void ResultsTree::AddErrorItem (const QString &file,
71- const QString &severity,
72- const QString &message,
73- const QStringList &files,
74- const QVariantList &lines,
75- const QString &id)
71+ void ResultsTree::AddErrorItem (const ErrorItem &item)
7672{
77- Q_UNUSED (file);
78-
79- if (files.isEmpty ())
73+ if (item.files .isEmpty ())
8074 {
8175 return ;
8276 }
8377
84- QString realfile = StripPath (files[0 ], false );
78+ QString realfile = StripPath (item. files [0 ], false );
8579
8680 if (realfile.isEmpty ())
8781 {
8882 realfile = tr (" Undefined file" );
8983 }
9084
91- bool hide = !mShowTypes [SeverityToShowType (severity)];
85+ bool hide = !mShowTypes [SeverityToShowType (item. severity )];
9286
9387 // if there is at least one error that is not hidden, we have a visible error
9488 if (!hide)
9589 {
9690 mVisibleErrors = true ;
9791 }
9892
93+ ErrorLine line;
94+ line.file = realfile;
95+ line.id = item.id ;
96+ line.line = item.lines [0 ];
97+ line.msg = item.msg ;
98+ line.severity = item.severity ;
9999 // Create the base item for the error and ensure it has a proper
100100 // file item as a parent
101- QStandardItem *item = AddBacktraceFiles (EnsureFileItem (files[0 ], hide),
102- realfile,
103- lines[0 ].toInt (),
104- severity,
105- message,
106- hide,
107- SeverityToIcon (severity));
101+ QStandardItem *stditem = AddBacktraceFiles (EnsureFileItem (line.file , hide),
102+ line,
103+ hide,
104+ SeverityToIcon (line.severity ));
108105
109- if (!item )
106+ if (!stditem )
110107 return ;
111108
112109 // Add user data to that item
113110 QMap<QString, QVariant> data;
114- data[" severity" ] = SeverityToShowType (severity);
115- data[" message" ] = message ;
116- data[" file" ] = files[ 0 ] ;
117- data[" line" ] = lines[ 0 ] ;
118- data[" id" ] = id;
119- item ->setData (QVariant (data));
111+ data[" severity" ] = SeverityToShowType (line. severity );
112+ data[" message" ] = line. msg ;
113+ data[" file" ] = line. file ;
114+ data[" line" ] = line. line ;
115+ data[" id" ] = line. id ;
116+ stditem ->setData (QVariant (data));
120117
121118 // Add backtrace files as children
122- for (int i = 1 ; i < files.size () && i < lines.size (); i++)
119+ for (int i = 1 ; i < item. files .size () && i < item. lines .size (); i++)
123120 {
121+ line.file = item.files [i];
122+ line.line = item.lines [i];
124123 QStandardItem *child_item;
125-
126- child_item = AddBacktraceFiles (item,
127- StripPath (files[i], false ),
128- lines[i].toInt (),
129- severity,
130- message,
124+ child_item = AddBacktraceFiles (stditem,
125+ line,
131126 hide,
132127 " :images/go-down.png" );
133128
134129 // Add user data to that item
135130 QMap<QString, QVariant> child_data;
136- child_data[" severity" ] = SeverityToShowType (severity);
137- child_data[" message" ] = message ;
138- child_data[" file" ] = files[i] ;
139- child_data[" line" ] = lines[i] ;
140- child_data[" id" ] = id;
131+ child_data[" severity" ] = SeverityToShowType (line. severity );
132+ child_data[" message" ] = line. msg ;
133+ child_data[" file" ] = line. file ;
134+ child_data[" line" ] = line. line ;
135+ child_data[" id" ] = line. id ;
141136 child_item->setData (QVariant (child_data));
142137 }
143138
@@ -150,10 +145,7 @@ void ResultsTree::AddErrorItem(const QString &file,
150145}
151146
152147QStandardItem *ResultsTree::AddBacktraceFiles (QStandardItem *parent,
153- const QString &file,
154- const int line,
155- const QString &severity,
156- const QString &message,
148+ const ErrorLine &item,
157149 const bool hide,
158150 const QString &icon)
159151
@@ -164,12 +156,12 @@ QStandardItem *ResultsTree::AddBacktraceFiles(QStandardItem *parent,
164156 }
165157
166158 QList<QStandardItem*> list;
167- list << CreateItem (file);
168- list << CreateItem (tr (severity.toLatin1 ()));
169- list << CreateItem (QString (" %1" ).arg (line));
159+ list << CreateItem (item. file );
160+ list << CreateItem (tr (item. severity .toLatin1 ()));
161+ list << CreateItem (QString (" %1" ).arg (item. line ));
170162 // TODO message has parameter names so we'll need changes to the core
171163 // cppcheck so we can get proper translations
172- list << CreateItem (tr (message .toLatin1 ()));
164+ list << CreateItem (tr (item. msg .toLatin1 ()));
173165
174166 // Check for duplicate rows and don't add them if found
175167 for (int i = 0 ; i < parent->rowCount (); i++)
0 commit comments