Fix bug #8506: Output all references when asked to do so.

This commit is contained in:
Richard Heck 2013-05-30 10:00:02 -04:00
parent 0f9f44bf40
commit d515ddefc0

View File

@ -976,7 +976,9 @@ int InsetBibtex::plaintext(odocstringstream & os,
docstring InsetBibtex::xhtml(XHTMLStream & xs, OutputParams const &) const docstring InsetBibtex::xhtml(XHTMLStream & xs, OutputParams const &) const
{ {
BiblioInfo const & bibinfo = buffer().masterBibInfo(); BiblioInfo const & bibinfo = buffer().masterBibInfo();
vector<docstring> const & cites = bibinfo.citedEntries(); bool const all_entries = getParam("btprint") == "btPrintAll";
vector<docstring> const & cites =
all_entries ? bibinfo.getKeys() : bibinfo.citedEntries();
docstring const reflabel = buffer().B_("References"); docstring const reflabel = buffer().B_("References");
@ -992,16 +994,19 @@ docstring InsetBibtex::xhtml(XHTMLStream & xs, OutputParams const &) const
BiblioInfo::const_iterator const biit = bibinfo.find(*vit); BiblioInfo::const_iterator const biit = bibinfo.find(*vit);
if (biit == bibinfo.end()) if (biit == bibinfo.end())
continue; continue;
BibTeXInfo const & entry = biit->second; BibTeXInfo const & entry = biit->second;
xs << html::StartTag("div", "class='bibtexentry'"); string const attr = "class='bibtexentry' id='LyXCite-"
// FIXME XHTML + to_utf8(html::cleanAttr(entry.key())) + "'";
// The same name/id problem we have elsewhere. xs << html::StartTag("div", attr);
string const attr =
"id='LyXCite-" + to_utf8(html::cleanAttr(entry.key())) + "'"; // don't print labels if we're outputting all entries
xs << html::CompTag("a", attr); if (!all_entries) {
xs << html::StartTag("span", "class='bibtexlabel'") xs << html::StartTag("span", "class='bibtexlabel'")
<< entry.label() << entry.label()
<< html::EndTag("span"); << html::EndTag("span");
}
// FIXME Right now, we are calling BibInfo::getInfo on the key, // FIXME Right now, we are calling BibInfo::getInfo on the key,
// which will give us all the cross-referenced info. But for every // which will give us all the cross-referenced info. But for every
// entry, so there's a lot of repitition. This should be fixed. // entry, so there's a lot of repitition. This should be fixed.