commit a89e3c344bdafd2922321e434c2384020318ed2e
Author: Juergen Spitzmueller <[email protected]>
Date:   Tue Sep 25 15:24:46 2018 +0200

    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 deletions(-)

diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp
index 399ddb6..d579863 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 f2b8dd1..63c99f9 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
        //@{

Reply via email to