Author: jrioux
Date: Sat Dec 3 23:58:38 2011
New Revision: 40355
URL: http://www.lyx.org/trac/changeset/40355
Log:
Remove the .aux and .bbl files when we switch the citation engine or style.
Modified:
lyx-devel/trunk/src/Buffer.cpp
lyx-devel/trunk/src/Buffer.h
lyx-devel/trunk/src/frontends/qt4/GuiDocument.cpp
lyx-devel/trunk/src/insets/InsetBibtex.cpp
Modified: lyx-devel/trunk/src/Buffer.cpp
==============================================================================
--- lyx-devel/trunk/src/Buffer.cpp Sat Dec 3 23:44:22 2011 (r40354)
+++ lyx-devel/trunk/src/Buffer.cpp Sat Dec 3 23:58:38 2011 (r40355)
@@ -2036,6 +2036,24 @@
}
+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);
Modified: lyx-devel/trunk/src/Buffer.h
==============================================================================
--- lyx-devel/trunk/src/Buffer.h Sat Dec 3 23:44:22 2011 (r40354)
+++ lyx-devel/trunk/src/Buffer.h Sat Dec 3 23:58:38 2011 (r40355)
@@ -484,6 +484,9 @@
///
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);
Modified: lyx-devel/trunk/src/frontends/qt4/GuiDocument.cpp
==============================================================================
--- lyx-devel/trunk/src/frontends/qt4/GuiDocument.cpp Sat Dec 3 23:44:22
2011 (r40354)
+++ lyx-devel/trunk/src/frontends/qt4/GuiDocument.cpp Sat Dec 3 23:58:38
2011 (r40355)
@@ -2246,6 +2246,8 @@
else
bp_.bibtex_command = bibtex_command + " " + bibtex_options;
+ buffer().removeBiblioTempFiles();
+
// Indices
indicesModule->apply(bp_);
Modified: lyx-devel/trunk/src/insets/InsetBibtex.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetBibtex.cpp Sat Dec 3 23:44:22 2011
(r40354)
+++ lyx-devel/trunk/src/insets/InsetBibtex.cpp Sat Dec 3 23:58:38 2011
(r40355)
@@ -59,13 +59,16 @@
: InsetCommand(buf, p)
{
buffer().invalidateBibinfoCache();
+ buffer().removeBiblioTempFiles();
}
InsetBibtex::~InsetBibtex()
{
- if (isBufferLoaded())
+ if (isBufferLoaded()) {
buffer().invalidateBibfileCache();
+ buffer().removeBiblioTempFiles();
+ }
}
@@ -108,6 +111,7 @@
cur.recordUndo();
setParams(p);
buffer().invalidateBibfileCache();
+ buffer().removeBiblioTempFiles();
cur.forceBufferUpdate();
break;
}