From: Julien Rioux Date: Sat, 12 Jan 2013 00:04:07 +0000 (+0100) Subject: Force BibTeX rerun upon add/remove/change citation (fixes #6955). X-Git-Tag: 2.1.0beta1~935 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=2ffd130d2bc4b594ab64327479ace742f119b5ae;p=lyx.git Force BibTeX rerun upon add/remove/change citation (fixes #6955). Reordering citations is one case where catching "Citation undefined on page ..." doesn't catch the need for a bibtex rerun. This patch ensures the proper ordering is obtained in pdf output without having to resort to closing and reopening the LyX document. --- diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp index d5c43535b1..2778e199a0 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -44,7 +44,16 @@ ParamInfo InsetCitation::param_info_; InsetCitation::InsetCitation(Buffer * buf, InsetCommandParams const & p) : InsetCommand(buf, p) -{} +{ + buffer().removeBiblioTempFiles(); +} + + +InsetCitation::~InsetCitation() +{ + if (isBufferLoaded()) + buffer().removeBiblioTempFiles(); +} ParamInfo const & InsetCitation::findInfo(string const & /* cmdName */) @@ -105,8 +114,10 @@ bool InsetCitation::isCompatibleCommand(string const & cmd) void InsetCitation::doDispatch(Cursor & cur, FuncRequest & cmd) { - if (cmd.action() == LFUN_INSET_MODIFY) + if (cmd.action() == LFUN_INSET_MODIFY) { + buffer().removeBiblioTempFiles(); cache.recalculate = true; + } InsetCommand::doDispatch(cur, cmd); } diff --git a/src/insets/InsetCitation.h b/src/insets/InsetCitation.h index 0cdde7b2ee..e29c3997fb 100644 --- a/src/insets/InsetCitation.h +++ b/src/insets/InsetCitation.h @@ -31,6 +31,8 @@ class InsetCitation : public InsetCommand public: /// InsetCitation(Buffer * buf, InsetCommandParams const &); + /// + ~InsetCitation(); /// \name Public functions inherited from Inset class //@{