X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fimporter.C;h=b37c9f0cfa89e3db9c5ff4c051f277025e01a982;hb=a617e0d978b460f5529737da1f1c73088e45a6eb;hp=b2d6f12156d10f693f6fb8762781344ea196b7f1;hpb=e1a5cb74a8685b4d2442d73ccec737577d931766;p=lyx.git diff --git a/src/importer.C b/src/importer.C index b2d6f12156..b37c9f0cfa 100644 --- a/src/importer.C +++ b/src/importer.C @@ -19,29 +19,30 @@ #include "funcrequest.h" #include "lyx_cb.h" -#include "bufferlist.h" #include "support/filetools.h" + #include "frontends/Alert.h" + #include "gettext.h" #include "BufferView.h" #include "buffer_funcs.h" -using lyx::support::bformat; -using lyx::support::changeExtension; -using lyx::support::makeDisplayPath; + +namespace lyx { + +using support::bformat; +using support::changeExtension; +using support::makeDisplayPath; using std::find; using std::string; using std::vector; -extern BufferList bufferlist; - - bool Importer::Import(LyXView * lv, string const & filename, - string const & format) + string const & format, ErrorList & errorList) { - string const displaypath = makeDisplayPath(filename); + docstring const displaypath = makeDisplayPath(filename); lv->message(bformat(_("Importing %1$s..."), displaypath)); string const lyxfile = changeExtension(filename, ".lyx"); @@ -52,27 +53,35 @@ bool Importer::Import(LyXView * lv, string const & filename, for (vector::const_iterator it = loaders.begin(); it != loaders.end(); ++it) { if (converters.isReachable(format, *it)) { - if (!converters.convert(0, filename, filename, - format, *it)) + string const tofile = + changeExtension(filename, + formats.extension(*it)); + if (!converters.convert(0, filename, tofile, + filename, format, *it, errorList)) return false; loader_format = *it; break; } } if (loader_format.empty()) { - Alert::error(_("Couldn't import file"), + frontend::Alert::error(_("Couldn't import file"), bformat(_("No information for importing the format %1$s."), formats.prettyName(format))); return false; } - } else + } else { loader_format = format; + } if (loader_format == "lyx") { lv->loadLyXFile(lyxfile); } else { - lv->setBuffer(newFile(lyxfile, string(), true)); + Buffer * const b = newFile(lyxfile, string(), true); + if (b) + lv->setBuffer(b); + else + return false; bool as_paragraphs = loader_format == "textparagraph"; string filename2 = (loader_format == format) ? filename : changeExtension(filename, @@ -110,3 +119,6 @@ vector const Importer::Loaders() v.push_back("textparagraph"); return v; } + + +} // namespace lyx