diff --git a/src/SeerSourceBrowserWidget.cpp b/src/SeerSourceBrowserWidget.cpp index 05f1bb1..22611d0 100644 --- a/src/SeerSourceBrowserWidget.cpp +++ b/src/SeerSourceBrowserWidget.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include SeerSourceBrowserWidget::SeerSourceBrowserWidget (QWidget* parent) : QWidget(parent) { @@ -63,12 +64,12 @@ void SeerSourceBrowserWidget::handleText (const QString& text) { // {file=\"helloworld.cpp\",fullname=\"/home/erniep/Development/Peak/src/Seer/helloworld/helloworld.cpp\"} // ] - QString files_text = Seer::parseFirst(text, "files=", '[', ']', false); - - //qDebug() << files_text; - + QString files_text = Seer::parseFirst(text, "files=", '[', ']', false); QStringList files_list = Seer::parse(files_text, "", '{', '}', false); + // Set up a map to look for duplicate entries. QMap + QMap files; + for ( const auto& entry_text : files_list ) { QString file_text = Seer::parseFirst(entry_text, "file=", '"', '"', false); @@ -76,6 +77,13 @@ void SeerSourceBrowserWidget::handleText (const QString& text) { //qDebug() << file_text << fullname_text; + // Skip duplicates + if (files.contains(fullname_text)) { + continue; + } + + files.insert(fullname_text, file_text); + // Get information about the file. QFileInfo fileInfo(fullname_text);