= theConverters().importableFormats();
vector<const Format *>::const_iterator it = import_formats.begin();
for (; it != import_formats.end(); ++it)
- if ((*it)->extension() == ext)
+ if ((*it)->hasExtension(ext))
found_formats.push_back(*it);
FuncRequest cmd;
from_master = true;
}
#else
- ErrorList & el = from_master ?
+ ErrorList const & el = from_master ?
bv->buffer().masterBuffer()->errorList(error_type) :
bv->buffer().errorList(error_type);
#endif
}
string format = to_utf8(cmd.argument());
if (cmd.argument().empty())
- format = doc_buffer->getDefaultOutputFormat();
- enable = doc_buffer->isExportableFormat(format);
+ format = doc_buffer->params().getDefaultOutputFormat();
+ enable = doc_buffer->params().isExportableFormat(format);
break;
}
|| name == "progress"
|| name == "compare";
else if (name == "print")
- enable = doc_buffer->isExportable("dvi")
+ enable = doc_buffer->params().isExportable("dvi")
&& lyxrc.print_command != "none";
else if (name == "character" || name == "symbols") {
if (!buf || buf->isReadonly())
return 0;
}
- newBuffer->errors("Parse");
setBuffer(newBuffer);
+ newBuffer->errors("Parse");
if (tolastfiles)
theSession().lastFiles().add(filename);
toqstr(addPath(package().system_support().absFileName(), "examples")));
docstring filter = formats.prettyName(format);
- filter += " (*.";
+ filter += " (*.{";
// FIXME UNICODE
- filter += from_utf8(formats.extension(format));
- filter += ')';
+ filter += from_utf8(formats.extensions(format));
+ filter += "})";
FileDialog::Result result =
dlg.open(toqstr(initpath), fileFilters(toqstr(filter)));
return false;
}
}
+ if (!buf) {
+ message(bformat(
+ _("No buffer for file: %1$s."),
+ makeDisplayPath(file_name))
+ );
+ return false;
+ }
setBuffer(buf);
documentBufferView()->setCursorFromRow(row);
return true;
buffer->params().maintain_unincluded_children
&& !buffer->params().getIncludedChildren().empty();
bool const success = func(format, update_unincluded);
- delete buffer;
+
+ // the cloning operation will have produced a clone of the entire set of
+ // documents, starting from the master. so we must delete those.
+ Buffer * mbuf = const_cast<Buffer *>(buffer->masterBuffer());
+ delete mbuf;
busyBuffers.remove(orig);
if (msg == "preview") {
return success
string format = argument;
if (format.empty())
- format = used_buffer->getDefaultOutputFormat();
+ format = used_buffer->params().getDefaultOutputFormat();
#if EXPORT_in_THREAD && (QT_VERSION >= 0x040400)
if (!msg.empty()) {
used_buffer->clone(),
format);
setPreviewFuture(f);
- last_export_format = used_buffer->bufferFormat();
+ last_export_format = used_buffer->params().bufferFormat();
(void) syncFunc;
(void) previewFunc;
// We are asynchronous, so we don't know here anything about the success
// Try with the document BufferView dispatch if any.
BufferView * doc_bv = documentBufferView();
- if (doc_bv) {
+ if (doc_bv && doc_bv != bv) {
doc_bv->dispatch(cmd, dr);
if (dr.dispatched())
return;
#if QT_VERSION < 0x040400
if (!doc_buffer->doExport(argument, false)) {
dr.setError(true);
- dr.setMessage(bformat(_("Error exporting to format: %1$s."),
+ dr.setMessage(bformat(_("Error exporting to format: %1$s"),
cmd.argument()));
}
#else
addExtension(mastername, "dvi")));
FileName const pdfname(addName(path.absFileName(),
addExtension(mastername, "pdf")));
- if (!dviname.exists() && !pdfname.exists()) {
+ bool const have_dvi = dviname.exists();
+ bool const have_pdf = pdfname.exists();
+ if (!have_dvi && !have_pdf) {
dr.setMessage(_("Please, preview the document first."));
break;
}
string outname = dviname.onlyFileName();
string command = lyxrc.forward_search_dvi;
- if (!dviname.exists() ||
- pdfname.lastModified() > dviname.lastModified()) {
+ if (!have_dvi || (have_pdf &&
+ pdfname.lastModified() > dviname.lastModified())) {
outname = pdfname.onlyFileName();
command = lyxrc.forward_search_pdf;
}