#include "frontends/alert.h"
#include "support/debug.h"
-#include "support/ExceptionMessage.h"
#include "support/docstream.h"
+#include "support/ExceptionMessage.h"
#include "support/filetools.h"
#include "support/gettext.h"
#include "support/lstrings.h"
{}
+void InsetBibtex::setBuffer(Buffer & buffer)
+{
+ if (buffer_) {
+ EmbeddedFileList::iterator it = bibfiles_.begin();
+ EmbeddedFileList::iterator it_end = bibfiles_.end();
+ for (; it != it_end; ++it) {
+ try {
+ *it = it->copyTo(&buffer);
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // failed to embed
+ it->setEmbed(false);
+ }
+ }
+ }
+ Inset::setBuffer(buffer);
+}
+
+
ParamInfo const & InsetBibtex::findInfo(string const & /* cmdName */)
{
static ParamInfo param_info_;
break;
}
//
- InsetCommandParams orig = params();
- try {
- // returned "embed" is composed of "true" or "false", which needs to be adjusted
- createBibFiles(p["bibfiles"], p["embed"], true, true);
- updateParam();
- } catch (ExceptionMessage const & message) {
- Alert::error(message.title_, message.details_);
- // do not set parameter if an error happens
- setParams(orig);
- break;
- }
+ createBibFiles(p["bibfiles"], p["embed"]);
+ updateParam();
buffer().updateBibfilesCache();
break;
}
void InsetBibtex::createBibFiles(docstring const & bibParam,
- docstring const & embedParam, bool boolStatus, bool updateFile) const
+ docstring const & embedParam) const
{
bibfiles_.clear();
while (!tmp.empty()) {
EmbeddedFile file(changeExtension(tmp, "bib"), buffer().filePath());
- if (boolStatus) {
- BOOST_ASSERT(emb == "true" || emb == "false");
- file.setEmbed(emb == "true");
- } else {
- file.setInzipName(emb);
- file.setEmbed(emb != "");
- }
- file.enable(buffer().embedded(), &buffer(), updateFile);
+ file.setInzipName(emb);
+ file.setEmbed(!emb.empty());
+ file.enable(buffer().embedded(), &buffer(), false);
bibfiles_.push_back(file);
// Get next file name
bibfiles = split(bibfiles, tmp, ',');
void InsetBibtex::registerEmbeddedFiles(EmbeddedFileList & files) const
{
if (bibfiles_.empty())
- createBibFiles(params()["bibfiles"], params()["embed"], false, false);
+ createBibFiles(params()["bibfiles"], params()["embed"]);
EmbeddedFileList::const_iterator it = bibfiles_.begin();
EmbeddedFileList::const_iterator it_end = bibfiles_.end();