if (buffer_) {
EmbeddedFileList::iterator it = bibfiles_.begin();
EmbeddedFileList::iterator it_end = bibfiles_.end();
- for (; it != it_end; ++it)
- *it = it->copyTo(&buffer);
+ 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);
}
#include "MetricsInfo.h"
#include "OutputParams.h"
+#include "frontends/alert.h"
+
#include "graphics/PreviewLoader.h"
#include "support/debug.h"
+#include "support/ExceptionMessage.h"
#include "support/filetools.h"
#include "support/gettext.h"
#include "support/lstrings.h"
namespace lyx {
+namespace Alert = frontend::Alert;
+
namespace external {
TempName::TempName()
void InsetExternal::setBuffer(Buffer & buffer)
{
- if (buffer_)
- params_.filename = params_.filename.copyTo(&buffer);
+ if (buffer_) {
+ try {
+ // a file may not be copied successfully when, e.g. buffer_
+ // has already been closed.
+ params_.filename = params_.filename.copyTo(&buffer);
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // failed to embed
+ params_.filename.setEmbed(false);
+ }
+ }
Inset::setBuffer(buffer);
}
void InsetGraphics::setBuffer(Buffer & buffer)
{
- if (buffer_)
- params_.filename = params_.filename.copyTo(&buffer);
+ if (buffer_) {
+ try {
+ // a file may not be copied successfully when, e.g. buffer_
+ // has already been closed.
+ params_.filename = params_.filename.copyTo(&buffer);
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // failed to embed
+ params_.filename.setEmbed(false);
+ }
+ }
Inset::setBuffer(buffer);
}
#include "support/debug.h"
#include "support/docstream.h"
+#include "support/ExceptionMessage.h"
#include "support/FileNameList.h"
#include "support/filetools.h"
#include "support/gettext.h"
void InsetInclude::setBuffer(Buffer & buffer)
{
if (buffer_) {
- EmbeddedFile file_from = includedFilename(*buffer_, params());
- EmbeddedFile file_to = file_from.copyTo(&buffer);
- if (file_to.embedded())
- setParam("embed", from_utf8(file_to.inzipName()));
+ try {
+ EmbeddedFile file_from = includedFilename(*buffer_, params());
+ EmbeddedFile file_to = file_from.copyTo(&buffer);
+ if (file_to.embedded())
+ setParam("embed", from_utf8(file_to.inzipName()));
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // failed to embed
+ setParam("embed", docstring());
+ }
+
}
buffer_ = &buffer;
if (label_)