diff --git a/src/tools/clangbackend/ipcsource/clangdocument.cpp b/src/tools/clangbackend/ipcsource/clangdocument.cpp index 3cfcfabe092..933bf612769 100644 --- a/src/tools/clangbackend/ipcsource/clangdocument.cpp +++ b/src/tools/clangbackend/ipcsource/clangdocument.cpp @@ -71,6 +71,8 @@ public: uint documentRevision = 0; + TimePoint visibleTimePoint; + TimePoint isDirtyChangeTimePoint; bool isDirty = false; @@ -245,13 +247,22 @@ bool Document::isVisibleInEditor() const return d->isVisibleInEditor; } -void Document::setIsVisibleInEditor(bool isVisibleInEditor) +void Document::setIsVisibleInEditor(bool isVisibleInEditor, const TimePoint &timePoint) { checkIfNull(); + if (isVisibleInEditor) + d->visibleTimePoint = timePoint; d->isVisibleInEditor = isVisibleInEditor; } +TimePoint Document::visibleTimePoint() const +{ + checkIfNull(); + + return d->visibleTimePoint;; +} + bool Document::isDirty() const { checkIfNull(); diff --git a/src/tools/clangbackend/ipcsource/clangdocument.h b/src/tools/clangbackend/ipcsource/clangdocument.h index 15555ace101..48dc32acee9 100644 --- a/src/tools/clangbackend/ipcsource/clangdocument.h +++ b/src/tools/clangbackend/ipcsource/clangdocument.h @@ -97,7 +97,8 @@ public: void setIsUsedByCurrentEditor(bool isUsedByCurrentEditor); bool isVisibleInEditor() const; - void setIsVisibleInEditor(bool isVisibleInEditor); + void setIsVisibleInEditor(bool isVisibleInEditor, const TimePoint &timePoint); + TimePoint visibleTimePoint() const; bool isDirty() const; TimePoint isDirtyTimeChangePoint() const; diff --git a/src/tools/clangbackend/ipcsource/clangdocuments.cpp b/src/tools/clangbackend/ipcsource/clangdocuments.cpp index 7ae7106cc80..5fc8f294a78 100644 --- a/src/tools/clangbackend/ipcsource/clangdocuments.cpp +++ b/src/tools/clangbackend/ipcsource/clangdocuments.cpp @@ -117,8 +117,9 @@ void Documents::setUsedByCurrentEditor(const Utf8String &filePath) void Documents::setVisibleInEditors(const Utf8StringVector &filePaths) { + const TimePoint timePoint = Clock::now(); for (Document &document : documents_) - document.setIsVisibleInEditor(filePaths.contains(document.filePath())); + document.setIsVisibleInEditor(filePaths.contains(document.filePath()), timePoint); } const Document &Documents::document(const Utf8String &filePath, const Utf8String &projectPartId) const