diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 8035b6da78b..ff2b63d3a75 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -1122,7 +1122,7 @@ bool MainWindow::getCppcheckSettings(Settings& settings, Suppressions& supprs) for (const QString& undefine : undefines) settings.userUndefs.insert(undefine.toStdString()); - settings.userIncludes.push_back(mProjectFile->getUserInclude().toStdString()); + mProjectFile->setSettingsUserIncludes(settings); const QStringList libraries = mProjectFile->getLibraries(); for (const QString& library : libraries) { diff --git a/gui/projectfile.cpp b/gui/projectfile.cpp index ce2d066fd71..d2b468443fa 100644 --- a/gui/projectfile.cpp +++ b/gui/projectfile.cpp @@ -1078,6 +1078,12 @@ void ProjectFile::writeStringList(QXmlStreamWriter &xmlWriter, const QStringList xmlWriter.writeEndElement(); } +void ProjectFile::setSettingsUserIncludes(Settings &settings) const +{ + if (!mUserInclude.isEmpty()) + settings.userIncludes.push_back(mUserInclude.toStdString()); +} + QStringList ProjectFile::fromNativeSeparators(const QStringList &paths) { QStringList ret; diff --git a/gui/projectfile.h b/gui/projectfile.h index 9d3b22d15e4..0dd68b58453 100644 --- a/gui/projectfile.h +++ b/gui/projectfile.h @@ -146,7 +146,7 @@ class ProjectFile : public QObject { } void setUserInclude(const QString& userInclude) { - mUserInclude = userInclude; + mUserInclude = userInclude.trimmed(); } /** @@ -452,8 +452,13 @@ class ProjectFile : public QObject { /** Get paths where we should glob for certain files (dir="cfg"/"platforms"/etc */ QStringList getSearchPaths(const QString& dir) const; + static QStringList getSearchPaths(const QString& projectPath, const QString& appPath, const QString& datadir, const QString& dir); + /** Set user includes in settings if non-empty */ + void setSettingsUserIncludes(Settings &settings) const; + + protected: /** diff --git a/gui/test/projectfile/testprojectfile.cpp b/gui/test/projectfile/testprojectfile.cpp index b38de056ec3..dbc4cb51659 100644 --- a/gui/test/projectfile/testprojectfile.cpp +++ b/gui/test/projectfile/testprojectfile.cpp @@ -199,5 +199,14 @@ void TestProjectFile::getCheckingSuppressionsStar() const QCOMPARE(projectFile.getCheckingSuppressions()[0].fileName, "*.cpp"); } +void TestProjectFile::emptyUserInclude() const +{ + ProjectFile projectFile; + Settings settings; + projectFile.setUserInclude(" "); + projectFile.setSettingsUserIncludes(settings); + QCOMPARE(settings.userIncludes.size(), 0); +} + QTEST_MAIN(TestProjectFile) diff --git a/gui/test/projectfile/testprojectfile.h b/gui/test/projectfile/testprojectfile.h index 027c7069706..18f38d0eb39 100644 --- a/gui/test/projectfile/testprojectfile.h +++ b/gui/test/projectfile/testprojectfile.h @@ -36,4 +36,6 @@ private slots: void getCheckingSuppressionsRelative() const; void getCheckingSuppressionsAbsolute() const; void getCheckingSuppressionsStar() const; + + void emptyUserInclude() const; };