if (embedded() && updateFile)
updateFromExternalFile();
} else {
- if (embedded() && updateFile)
+ // when a new embeddeed file is created, it is not enabled, and
+ // there is no need to extract.
+ if (enabled() && embedded() && updateFile)
extract();
temp_path_ = "";
}
#include "GuiInclude.h"
#include "Buffer.h"
+#include "EmbeddedFiles.h"
#include "Format.h"
#include "FuncRequest.h"
#include "support/gettext.h"
#include "qt_helpers.h"
#include "LyXRC.h"
+#include "frontends/alert.h"
+
#include "support/os.h"
#include "support/lstrings.h"
+#include "support/ExceptionMessage.h"
#include "support/FileFilterList.h"
#include "support/filetools.h"
void GuiInclude::applyView()
{
params_["filename"] = from_utf8(internal_path(fromqstr(filenameED->text())));
- params_["embed"] = embedCB->checkState() == Qt::Checked ? _("true") : _("false");
+ params_["embed"].clear();
+ try {
+ Buffer & buf = buffer();
+ EmbeddedFile file(to_utf8(params_["filename"]), buf.filePath());
+ file.setEmbed(embedCB->checkState() == Qt::Checked);
+ // move file around if needed, an exception may be raised.
+ file.enable(buf.embedded(), &buf, true);
+ // if things are OK..., set params_["embed"]
+ params_["embed"] = file.embedded() ? from_utf8(file.inzipName()) : docstring();
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // params_["embed"] will be empty if a file is failed to embed
+ }
params_.preview(previewCB->isChecked());
int const item = typeCO->currentIndex();
#include "support/debug.h"
#include "support/docstream.h"
-#include "support/ExceptionMessage.h"
#include "support/FileNameList.h"
#include "support/filetools.h"
#include "support/gettext.h"
label_->initView();
}
}
- try {
- // the embed parameter passed back from the dialog
- // is "true" or "false", we need to change it.
- EmbeddedFile file = EmbeddedFile(to_utf8(p["filename"]),
- onlyPath(parentFilename(buf)));
- file.setEmbed(p["embed"] == _("true"));
- // move file around if needed, an exception may be raised.
- file.enable(buf.embedded(), &buf, true);
- // if things are OK..., set p["embed"]
- if (file.embedded())
- p["embed"] = from_utf8(file.inzipName());
- else
- p["embed"].clear();
- } catch (ExceptionMessage const & message) {
- Alert::error(message.title_, message.details_);
- // do not set parameter if an error happens
- break;
- }
setParams(p);
buffer().updateBibfilesCache();
} else