diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 908438b8620..bbf35c342a7 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -1061,6 +1062,23 @@ QStringList Project::availableQmlPreviewTranslations(QString *errorMessage) }); } +QList Project::modifiedDocuments() const +{ + QList modifiedProjectDocuments; + + for (Core::IDocument *doc : Core::DocumentModel::openedDocuments()) { + if (doc->isModified() && isKnownFile(doc->filePath())) + modifiedProjectDocuments.append(doc); + } + + return modifiedProjectDocuments; +} + +bool Project::isModified() const +{ + return !modifiedDocuments().isEmpty(); +} + #if defined(WITH_TESTS) } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index e91fec8e7cf..317d8bdc194 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -182,6 +182,9 @@ public: QStringList availableQmlPreviewTranslations(QString *errorMessage); + QList modifiedDocuments() const; + bool isModified() const; + signals: void projectFileIsDirty(const Utils::FilePath &path);