GUI: Refactor comparisons

This commit is contained in:
Daniel Marjamäki 2018-10-20 16:30:40 +02:00
parent 277e0f1a8f
commit 1a75084d75
3 changed files with 17 additions and 6 deletions

View File

@ -79,3 +79,14 @@ QString ErrorItem::ToString() const
} }
return str; return str;
} }
bool ErrorItem::sameCID(const ErrorItem &errorItem1, const ErrorItem &errorItem2)
{
// TODO: Implement some better CID calculation
return errorItem1.errorId == errorItem2.errorId &&
errorItem1.errorPath == errorItem2.errorPath &&
errorItem1.file0 == errorItem2.file0 &&
errorItem1.message == errorItem2.message &&
errorItem1.inconclusive == errorItem2.inconclusive &&
errorItem1.severity == errorItem2.severity;
}

View File

@ -94,6 +94,11 @@ public:
// Special GUI properties // Special GUI properties
QString sinceDate; QString sinceDate;
QString tags; QString tags;
/**
* Compare "CID"
*/
static bool sameCID(const ErrorItem &errorItem1, const ErrorItem &errorItem2);
}; };
Q_DECLARE_METATYPE(ErrorItem); Q_DECLARE_METATYPE(ErrorItem);

View File

@ -1131,12 +1131,7 @@ void ResultsTree::saveErrors(Report *report, QStandardItem *fileItem) const
static int indexOf(const QList<ErrorItem> &list, const ErrorItem &item) static int indexOf(const QList<ErrorItem> &list, const ErrorItem &item)
{ {
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
if (list[i].errorId == item.errorId && if (ErrorItem::sameCID(item, list[i])) {
list[i].errorPath == item.errorPath &&
list[i].file0 == item.file0 &&
list[i].message == item.message &&
list[i].inconclusive == item.inconclusive &&
list[i].severity == item.severity) {
return i; return i;
} }
} }