diff options
-rw-r--r-- | src/datasources/examplesdatasource.cpp | 10 | ||||
-rw-r--r-- | src/datasources/examplesdatasource.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/datasources/examplesdatasource.cpp b/src/datasources/examplesdatasource.cpp index 0ff454e..0682e7b 100644 --- a/src/datasources/examplesdatasource.cpp +++ b/src/datasources/examplesdatasource.cpp @@ -71,19 +71,19 @@ static QString examplesKey() { return QStringLiteral("examples"); } QVariant ExamplesDataSource::data() { - return QVariantMap{{examplesKey(), QVariant(m_examplePaths.toList())}}; + return QVariantMap{{examplesKey(), QVariant(m_examplePaths)}}; } void ExamplesDataSource::loadImpl(QSettings *settings) { auto setter = ScopedSettingsGroupSetter::forDataSource(*this, *settings); - m_examplePaths = settings->value(examplesKey()).toStringList().toSet(); + m_examplePaths = settings->value(examplesKey()).toStringList(); } void ExamplesDataSource::storeImpl(QSettings *settings) { auto setter = ScopedSettingsGroupSetter::forDataSource(*this, *settings); - settings->setValue(examplesKey(), QStringList(m_examplePaths.toList())); + settings->setValue(examplesKey(), QStringList(m_examplePaths)); } void ExamplesDataSource::resetImpl(QSettings *settings) @@ -107,7 +107,9 @@ void ExamplesDataSource::updateOpenedExamples() auto projectPath = QDir::fromNativeSeparators(project->projectFilePath().toString()); const auto match = re.match(projectPath); if (match.hasMatch()) { - m_examplePaths << match.captured(examplePathGroupName()); + QString sanitizedPath = match.captured(examplePathGroupName()); + if (!m_examplePaths.contains(sanitizedPath)) + m_examplePaths.append(sanitizedPath); } } } diff --git a/src/datasources/examplesdatasource.h b/src/datasources/examplesdatasource.h index 19b5779..be48a6b 100644 --- a/src/datasources/examplesdatasource.h +++ b/src/datasources/examplesdatasource.h @@ -62,7 +62,7 @@ private: // Methods void updateOpenedExamples(); private: // Data - QSet<QString> m_examplePaths; + QList<QString> m_examplePaths; }; } // namespace Internal |