Remove the .aux and .bbl files when we switch the citation engine or style.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40355 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Julien Rioux 2011-12-03 22:58:38 +00:00
parent 210a440609
commit e93092e72b
4 changed files with 28 additions and 1 deletions

View File

@ -2036,6 +2036,24 @@ bool Buffer::citeLabelsValid() const
}
void Buffer::removeBiblioTempFiles() const
{
// We remove files that contain LaTeX commands specific to the
// particular bibliographic style being used, in order to avoid
// LaTeX errors when we switch style.
FileName const aux_file(addName(temppath(), changeExtension(latexName(),".aux")));
FileName const bbl_file(addName(temppath(), changeExtension(latexName(),".bbl")));
LYXERR(Debug::FILES, "Removing the .aux file " << aux_file);
aux_file.removeFile();
LYXERR(Debug::FILES, "Removing the .bbl file " << bbl_file);
bbl_file.removeFile();
// Also for the parent buffer
Buffer const * const pbuf = parent();
if (pbuf)
pbuf->removeBiblioTempFiles();
}
bool Buffer::isDepClean(string const & name) const
{
DepClean::const_iterator const it = d->dep_clean.find(name);

View File

@ -484,6 +484,9 @@ public:
///
void getLabelList(std::vector<docstring> &) const;
/// This removes the .aux and .bbl files from the temp dir.
void removeBiblioTempFiles() const;
///
void changeLanguage(Language const * from, Language const * to);

View File

@ -2246,6 +2246,8 @@ void GuiDocument::applyView()
else
bp_.bibtex_command = bibtex_command + " " + bibtex_options;
buffer().removeBiblioTempFiles();
// Indices
indicesModule->apply(bp_);

View File

@ -59,13 +59,16 @@ InsetBibtex::InsetBibtex(Buffer * buf, InsetCommandParams const & p)
: InsetCommand(buf, p)
{
buffer().invalidateBibinfoCache();
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;
}