From a89e3c344bdafd2922321e434c2384020318ed2e Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Tue, 25 Sep 2018 15:24:46 +0200 Subject: [PATCH] Add bibtex inset to outliner if "add to toc" is checked. Fixes #11309 --- src/insets/InsetBibtex.cpp | 24 +++++++++++++++++++++++- src/insets/InsetBibtex.h | 5 +++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp index 399ddb6012..d5798630a7 100644 --- a/src/insets/InsetBibtex.cpp +++ b/src/insets/InsetBibtex.cpp @@ -32,6 +32,7 @@ #include "PDFOptions.h" #include "texstream.h" #include "TextClass.h" +#include "TocBackend.h" #include "frontends/alert.h" @@ -900,10 +901,31 @@ void InsetBibtex::updateBuffer(ParIterator const &, UpdateType) } +docstring InsetBibtex::getRefLabel() const +{ + if (buffer().masterParams().documentClass().hasLaTeXLayout("chapter")) + return buffer().B_("Bibliography"); + return buffer().B_("References"); +} + + +void InsetBibtex::addToToc(DocIterator const & cpit, bool output_active, + UpdateType, TocBackend & backend) const +{ + if (!prefixIs(to_utf8(getParam("options")), "bibtotoc")) + return; + + docstring const str = getRefLabel(); + TocBuilder & b = backend.builder("tableofcontents"); + b.pushItem(cpit, str, output_active); + b.pop(); +} + + int InsetBibtex::plaintext(odocstringstream & os, OutputParams const & op, size_t max_length) const { - docstring const reflabel = buffer().B_("References"); + docstring const reflabel = getRefLabel(); // We could output more information here, e.g., what databases are included // and information about options. But I don't necessarily see any reason to diff --git a/src/insets/InsetBibtex.h b/src/insets/InsetBibtex.h index f2b8dd1576..63c99f9ad5 100644 --- a/src/insets/InsetBibtex.h +++ b/src/insets/InsetBibtex.h @@ -57,6 +57,9 @@ public: /// void updateBuffer(ParIterator const &, UpdateType); /// + void addToToc(DocIterator const & di, bool output_active, + UpdateType utype, TocBackend & backend) const; + /// void collectBibKeys(InsetIterator const &, support::FileNameList &) const; /// void validate(LaTeXFeatures &) const; @@ -84,6 +87,8 @@ private: void parseBibTeXFiles(support::FileNameList &) const; /// bool usingBiblatex() const; + /// + docstring getRefLabel() const; /// \name Private functions inherited from Inset class //@{ -- 2.39.2