summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2017-07-27 11:02:25 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2017-08-03 08:26:39 +0000
commit724573324cdd7dfa57dad50dbb22ed5db23b2a8e (patch)
tree1ffaa4e7cb0292e9d6200045e71bd0e99a4efdd9
parentff05889755c1b4b55714e5d21758ce6a17b7a355 (diff)
downloadqt-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.cpp13
-rw-r--r--src/tools/clangbackend/ipcsource/clangdocument.h3
-rw-r--r--src/tools/clangbackend/ipcsource/clangdocuments.cpp3
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