summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/projectexplorer/project.cpp18
-rw-r--r--src/plugins/projectexplorer/project.h3
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);