X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetBibtex.cpp;h=8f33a2de3c37ca2c2c1501cc7028aaedac1b0c11;hb=3588f2f69675df8dbf829800b0ed6e4a455c68b4;hp=2544a493d39a686588557b44d291fae989c0d337;hpb=dfdcc56cbaf77b67048cfd7e2ad877b7687f4888;p=lyx.git diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp index 2544a493d3..8f33a2de3c 100644 --- a/src/insets/InsetBibtex.cpp +++ b/src/insets/InsetBibtex.cpp @@ -58,14 +58,17 @@ namespace os = support::os; InsetBibtex::InsetBibtex(Buffer * buf, InsetCommandParams const & p) : InsetCommand(buf, p) { - buffer().invalidateBibinfoCache(); + buffer().invalidateBibfileCache(); + buffer().removeBiblioTempFiles(); } InsetBibtex::~InsetBibtex() { - if (isBufferLoaded()) + if (isBufferLoaded()) { buffer().invalidateBibfileCache(); + buffer().removeBiblioTempFiles(); + } } @@ -108,6 +111,7 @@ void InsetBibtex::doDispatch(Cursor & cur, FuncRequest & cmd) cur.recordUndo(); setParams(p); buffer().invalidateBibfileCache(); + buffer().removeBiblioTempFiles(); cur.forceBufferUpdate(); break; } @@ -332,6 +336,9 @@ void InsetBibtex::latex(otexstream & os, OutputParams const & runparams) const style = split(style, bibtotoc, ','); } + if (style == "default") + style = buffer().params().biblio_style; + if (!style.empty()) { string base = normalizeName(buffer(), runparams, style, ".bst"); FileName const try_in_file = @@ -916,11 +923,9 @@ void InsetBibtex::validate(LaTeXFeatures & features) const // It'd be better to be able to get this from an InsetLayout, but at present // InsetLayouts do not seem really to work for things that aren't InsetTexts. if (features.runparams().flavor == OutputParams::HTML) - features.addPreambleSnippet(""); + "span.bibtexlabel:after{ content: \"] \"; }"); } @@ -931,9 +936,8 @@ docstring InsetBibtex::xhtml(XHTMLStream & xs, OutputParams const &) const { BiblioInfo const & bibinfo = buffer().masterBibInfo(); vector const & cites = bibinfo.citedEntries(); - CiteEngine const engine = buffer().params().citeEngine(); - bool const numbers = - (engine == ENGINE_BASIC || engine == ENGINE_NATBIB_NUMERICAL); + CiteEngineType const engine_type = buffer().params().citeEngineType(); + bool const numbers = (engine_type == ENGINE_TYPE_NUMERICAL); docstring reflabel = from_ascii("References"); Language const * l = buffer().params().language; @@ -956,7 +960,8 @@ docstring InsetBibtex::xhtml(XHTMLStream & xs, OutputParams const &) const xs << html::StartTag("div", "class='bibtexentry'"); // FIXME XHTML // The same name/id problem we have elsewhere. - string const attr = "id='" + to_utf8(entry.key()) + "'"; + string const attr = + "id='LyXCite-" + to_utf8(html::cleanAttr(entry.key())) + "'"; xs << html::CompTag("a", attr); docstring citekey; if (numbers)