]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetBibitem.cpp
Remove all BufferParam arguments in InsetXXX methods (since insets know about their...
[lyx.git] / src / insets / InsetBibitem.cpp
index 3a0851f8f13fd4fc1dfe5f616227d42d029572ed..008bf9aebeede8f3e787929ddec5d676f728ace8 100644 (file)
 #include "FuncRequest.h"
 #include "InsetIterator.h"
 #include "InsetList.h"
+#include "Language.h" 
 #include "Lexer.h"
 #include "output_xhtml.h"
 #include "Paragraph.h"
 #include "ParagraphList.h"
+#include "ParIterator.h"
 #include "TextClass.h"
 
 #include "frontends/alert.h"
@@ -244,7 +246,7 @@ void InsetBibitem::fillWithBibKeys(BiblioInfo & keys, InsetIterator const & it)
 {
        docstring const key = getParam("key");
        BibTeXInfo keyvalmap(false);
-       keyvalmap[from_ascii("label")] = getParam("label");
+       keyvalmap.label(bibLabel());
        DocIterator doc_it(it); 
        doc_it.forwardPos();
        keyvalmap[from_ascii("ref")] = doc_it.paragraph().asString();
@@ -253,23 +255,26 @@ void InsetBibitem::fillWithBibKeys(BiblioInfo & keys, InsetIterator const & it)
 
 
 // Update the counters of this inset and of its contents
-void InsetBibitem::updateLabels(ParIterator const &) 
+void InsetBibitem::updateLabels(ParIterator const & it
 {
-       Counters & counters = buffer().masterBuffer()->params().documentClass().counters();
+       BufferParams const & bp = buffer().masterBuffer()->params();
+       Counters & counters = bp.documentClass().counters();
        docstring const bibitem = from_ascii("bibitem");
        if (counters.hasCounter(bibitem) && getParam("label").empty()) {
                counters.step(bibitem);
-               autolabel_ = counters.theCounter(bibitem);
+               string const & lang = it.paragraph().getParLanguage(bp)->code();
+               autolabel_ = counters.theCounter(bibitem, lang);
        } else {
                autolabel_ = from_ascii("??");
        }
 }
 
 
-int InsetBibitem::xhtml(odocstream & os, OutputParams const &) const
+docstring InsetBibitem::xhtml(odocstream & os, OutputParams const &) const
 {
        os << "<a name='" << html::htmlize(getParam("key")) << "'></a>";
        os << "<span class='biblabel'>" << bibLabel() << "</span> "; 
+       return docstring();
 }