commit 4115d2487f57f58774ee2846aa2b35818c0bc1b9
Author: Juergen Spitzmueller <[email protected]>
Date: Sat Oct 13 11:06:24 2018 +0200
Clear bibfile cache when set of bibliography files change
Part of #9158
---
src/Buffer.cpp | 8 +++++++-
src/Buffer.h | 2 ++
src/insets/InsetBibtex.cpp | 1 +
3 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index 64e4e0f..2809fdf 100644
--- a/src/Buffer.cpp
+++ b/src/Buffer.cpp
@@ -2492,6 +2492,12 @@ void Buffer::checkIfBibInfoCacheIsValid() const
}
+void Buffer::clearBibFileCache() const
+{
+ bibfileCache.clear();
+}
+
+
void Buffer::reloadBibInfoCache(bool const force) const
{
// use the master's cache
@@ -2511,7 +2517,7 @@ void Buffer::reloadBibInfoCache(bool const force) const
// FIXME Is this sufficient? Or should we also force that
// in some other cases? If so, then it is easy enough to
// add the following line in some other places.
- bibfileCache.clear();
+ clearBibFileCache();
d->bibinfo_.clear();
FileNameList checkedFiles;
collectBibKeys(checkedFiles);
diff --git a/src/Buffer.h b/src/Buffer.h
index c68f09d..4037e5a 100644
--- a/src/Buffer.h
+++ b/src/Buffer.h
@@ -500,6 +500,8 @@ public:
/// Calling this method invalidates the cache and so requires a
/// re-read.
void invalidateBibinfoCache() const;
+ /// Clear the bibfiles cache
+ void clearBibFileCache() const;
/// Updates the cached bibliography information, checking first to see
/// whether the cache is valid. If so, we do nothing. If not, then we
/// reload all the BibTeX info.
diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp
index d579863..ae76a7f 100644
--- a/src/insets/InsetBibtex.cpp
+++ b/src/insets/InsetBibtex.cpp
@@ -105,6 +105,7 @@ void InsetBibtex::doDispatch(Cursor & cur, FuncRequest &
cmd)
cur.recordUndo();
setParams(p);
+ cur.buffer()->clearBibFileCache();
cur.forceBufferUpdate();
break;
}