diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp index ebe547176e2..841ecd318ff 100644 --- a/src/plugins/qtsupport/exampleslistmodel.cpp +++ b/src/plugins/qtsupport/exampleslistmodel.cpp @@ -42,6 +42,7 @@ #include #include +#include #include #include #include @@ -50,6 +51,8 @@ #include #include +using namespace Utils; + namespace QtSupport { namespace Internal { @@ -101,12 +104,21 @@ ExampleSetModel::ExampleSetModel() qWarning() << "Manifest path " << set.manifestPath << "is not a readable directory, ignoring"; continue; } - m_extraExampleSets.append(set); if (debugExamples()) { qWarning() << "Adding examples set displayName=" << set.displayName << ", manifestPath=" << set.manifestPath << ", examplesPath=" << set.examplesPath; } + if (!Utils::anyOf(m_extraExampleSets, [&set](const ExtraExampleSet &s) { + return FilePath::fromString(s.examplesPath).cleanPath() + == FilePath::fromString(set.examplesPath).cleanPath() + && FilePath::fromString(s.manifestPath).cleanPath() + == FilePath::fromString(set.manifestPath).cleanPath(); + })) { + m_extraExampleSets.append(set); + } else if (debugExamples()) { + qWarning() << "Not adding, because example set with same directories exists"; + } } m_extraExampleSets += pluginRegisteredExampleSets();