diff options
-rw-r--r-- | src/plugins/projectexplorer/project.cpp | 18 | ||||
-rw-r--r-- | src/plugins/projectexplorer/project.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 908438b862..bbf35c342a 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -49,6 +49,7 @@ #include <coreplugin/icore.h> #include <coreplugin/iversioncontrol.h> #include <coreplugin/vcsmanager.h> +#include <coreplugin/editormanager/documentmodel.h> #include <projectexplorer/buildmanager.h> #include <projectexplorer/kitmanager.h> @@ -1061,6 +1062,23 @@ QStringList Project::availableQmlPreviewTranslations(QString *errorMessage) }); } +QList<Core::IDocument *> Project::modifiedDocuments() const +{ + QList<Core::IDocument *> 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 e91fec8e7c..317d8bdc19 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -182,6 +182,9 @@ public: QStringList availableQmlPreviewTranslations(QString *errorMessage); + QList<Core::IDocument *> modifiedDocuments() const; + bool isModified() const; + signals: void projectFileIsDirty(const Utils::FilePath &path); |