diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-07-27 11:02:25 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-08-03 08:26:39 +0000 |
commit | 724573324cdd7dfa57dad50dbb22ed5db23b2a8e (patch) | |
tree | 1ffaa4e7cb0292e9d6200045e71bd0e99a4efdd9 | |
parent | ff05889755c1b4b55714e5d21758ce6a17b7a355 (diff) | |
download | qt-creator-724573324cdd7dfa57dad50dbb22ed5db23b2a8e.tar.gz |
Clang: Track visibility timepoint of documents
This enables determination of "most recenlty used" documents, which is
needed for a follow-up change.
Change-Id: I7b2c9001fd00173044983780e99817b4416e280e
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
-rw-r--r-- | src/tools/clangbackend/ipcsource/clangdocument.cpp | 13 | ||||
-rw-r--r-- | src/tools/clangbackend/ipcsource/clangdocument.h | 3 | ||||
-rw-r--r-- | src/tools/clangbackend/ipcsource/clangdocuments.cpp | 3 |
3 files changed, 16 insertions, 3 deletions
diff --git a/src/tools/clangbackend/ipcsource/clangdocument.cpp b/src/tools/clangbackend/ipcsource/clangdocument.cpp index 3cfcfabe09..933bf61276 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 15555ace10..48dc32acee 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 7ae7106cc8..5fc8f294a7 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 |