From 350b82fd624aa91bf9e58e2f3b4c609c339fa54f Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Mon, 9 Aug 2010 19:17:44 +0000 Subject: [PATCH] Revert r35106. Help needed here. Why isn't this equivalent? git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35108 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Buffer.cpp | 2 +- src/insets/Inset.h | 2 +- src/insets/InsetBibitem.cpp | 8 +------- src/insets/InsetBibitem.h | 2 +- src/insets/InsetBibtex.cpp | 3 ++- src/insets/InsetBibtex.h | 2 +- src/insets/InsetInclude.cpp | 9 ++++----- src/insets/InsetInclude.h | 2 +- 8 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 77594912ca..2ced899b47 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -1801,7 +1801,7 @@ void Buffer::checkBibInfoCache() const if (!d->bibinfo_cache_valid_) { d->bibinfo_.clear(); for (InsetIterator it = inset_iterator_begin(inset()); it; ++it) - it->fillWithBibKeys(d->bibinfo_); + it->fillWithBibKeys(d->bibinfo_, it); d->bibinfo_cache_valid_ = true; } } diff --git a/src/insets/Inset.h b/src/insets/Inset.h index 6aefde8f7f..3ee807b333 100644 --- a/src/insets/Inset.h +++ b/src/insets/Inset.h @@ -478,7 +478,7 @@ public: /// pit is the ParConstIterator of the paragraph containing the inset virtual void addToToc(DocIterator const &) {} /// Fill keys with BibTeX information - virtual void fillWithBibKeys(BiblioInfo &) const {} + virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const {} /// Update the counters of this inset and of its contents. /// The boolean indicates whether we are preparing for output, e.g., /// of XHTML. diff --git a/src/insets/InsetBibitem.cpp b/src/insets/InsetBibitem.cpp index 162644c85d..d650feab06 100644 --- a/src/insets/InsetBibitem.cpp +++ b/src/insets/InsetBibitem.cpp @@ -258,17 +258,11 @@ docstring bibitemWidest(Buffer const & buffer, OutputParams const & runparams) } -void InsetBibitem::fillWithBibKeys(BiblioInfo & keys) const +void InsetBibitem::fillWithBibKeys(BiblioInfo & keys, InsetIterator const & it) const { docstring const key = getParam("key"); - // false means it's not BibTeX BibTeXInfo keyvalmap(false); keyvalmap.label(bibLabel()); - // The indirection here is a little annoying, but - // DocIterator(Buffer *, Inset *) - // is private. - InsetBibitem & me = const_cast(*this); - InsetIterator it(me); DocIterator doc_it(it); doc_it.forwardPos(); keyvalmap[from_ascii("ref")] = doc_it.paragraph().asString(); diff --git a/src/insets/InsetBibitem.h b/src/insets/InsetBibitem.h index 1508a22c77..200630355f 100644 --- a/src/insets/InsetBibitem.h +++ b/src/insets/InsetBibitem.h @@ -63,7 +63,7 @@ private: /// docstring xhtml(XHTMLStream &, OutputParams const &) const; /// - virtual void fillWithBibKeys(BiblioInfo &) const; + virtual void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const; /// Update the counter of this inset void updateBuffer(ParIterator const &, UpdateType); /// diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp index f023665ee1..9330feb82d 100644 --- a/src/insets/InsetBibtex.cpp +++ b/src/insets/InsetBibtex.cpp @@ -662,7 +662,8 @@ namespace { // This method returns a comma separated list of Bibtex entries -void InsetBibtex::fillWithBibKeys(BiblioInfo & keylist) const +void InsetBibtex::fillWithBibKeys(BiblioInfo & keylist, + InsetIterator const & /*di*/) const { // This bibtex parser is a first step to parse bibtex files // more precisely. diff --git a/src/insets/InsetBibtex.h b/src/insets/InsetBibtex.h index 4b19f0fcfa..efd5a385b1 100644 --- a/src/insets/InsetBibtex.h +++ b/src/insets/InsetBibtex.h @@ -42,7 +42,7 @@ public: /// int latex(odocstream &, OutputParams const &) const; /// - void fillWithBibKeys(BiblioInfo &) const; + void fillWithBibKeys(BiblioInfo &, InsetIterator const &) const; /// support::FileNameList getBibFiles() const; /// diff --git a/src/insets/InsetInclude.cpp b/src/insets/InsetInclude.cpp index b3e78d7954..9458aba8f2 100644 --- a/src/insets/InsetInclude.cpp +++ b/src/insets/InsetInclude.cpp @@ -830,13 +830,12 @@ void InsetInclude::validate(LaTeXFeatures & features) const } -void InsetInclude::fillWithBibKeys(BiblioInfo & keys) const +void InsetInclude::fillWithBibKeys(BiblioInfo & keys, + InsetIterator const & /*di*/) const { if (loadIfNeeded()) { - string const included_file = - includedFileName(buffer(), params()).absFileName(); - Buffer * tmp = - theBufferList().getBuffer(FileName(included_file)); + string const included_file = includedFileName(buffer(), params()).absFileName(); + Buffer * tmp = theBufferList().getBuffer(FileName(included_file)); BiblioInfo const & newkeys = tmp->localBibInfo(); keys.mergeBiblioInfo(newkeys); } diff --git a/src/insets/InsetInclude.h b/src/insets/InsetInclude.h index 94d64d963a..cfc990cbcc 100644 --- a/src/insets/InsetInclude.h +++ b/src/insets/InsetInclude.h @@ -59,7 +59,7 @@ public: * \param keys the list of bibkeys in the child buffer. * \param it not used here */ - void fillWithBibKeys(BiblioInfo & keys) const; + void fillWithBibKeys(BiblioInfo & keys, InsetIterator const & it) const; /// bool hasSettings() const { return true; } -- 2.39.2