X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fimporter.C;h=b37c9f0cfa89e3db9c5ff4c051f277025e01a982;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=563651d465e372b6db207709067a1845c16f8008;hpb=8283e978f8d621041c432b9b88a476bfd567385c;p=lyx.git diff --git a/src/importer.C b/src/importer.C index 563651d465..b37c9f0cfa 100644 --- a/src/importer.C +++ b/src/importer.C @@ -1,48 +1,51 @@ -/* This file is part of - * ====================================================== +/** + * \file importer.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * LyX, The Document Processor + * \author unknown + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. - * - * ====================================================== */ + * Full author contact details are available in file CREDITS. + */ #include -#ifdef __GNUG__ -#pragma implementation -#endif - -#include - #include "importer.h" #include "converter.h" -#include "LyXView.h" -#include "lyxfunc.h" +#include "format.h" +#include "frontends/LyXView.h" +#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 std::vector; -using std::find; -extern BufferList bufferlist; -extern void InsertAsciiFile(BufferView *, string const &, bool); +namespace lyx { + +using support::bformat; +using support::changeExtension; +using support::makeDisplayPath; + +using std::find; +using std::string; +using std::vector; bool Importer::Import(LyXView * lv, string const & filename, - string const & format) + string const & format, ErrorList & errorList) { - string const displaypath = MakeDisplayPath(filename); - ostringstream s1; - s1 << _("Importing") << ' ' << displaypath << "..."; - lv->message(s1.str().c_str()); + docstring const displaypath = makeDisplayPath(filename); + lv->message(bformat(_("Importing %1$s..."), displaypath)); - string const lyxfile = ChangeExtension(filename, ".lyx"); + string const lyxfile = changeExtension(filename, ".lyx"); string loader_format; vector loaders = Loaders(); @@ -50,35 +53,41 @@ 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::alert(_("Cannot import file"), - _("No information for importing from ") - + formats.prettyName(format)); + 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") { - Buffer * buffer = bufferlist.loadLyXFile(lyxfile); - if (buffer) - lv->view()->buffer(buffer); + lv->loadLyXFile(lyxfile); } else { - lv->view()->buffer(bufferlist.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, + : changeExtension(filename, formats.extension(loader_format)); - InsertAsciiFile(lv->view(), filename2, as_paragraphs); - lv->getLyXFunc()->dispatch(LFUN_MARK_OFF); + insertAsciiFile(lv->view(), filename2, as_paragraphs); + lv->dispatch(FuncRequest(LFUN_MARK_OFF)); } // we are done @@ -87,19 +96,6 @@ bool Importer::Import(LyXView * lv, string const & filename, } -#if 0 -bool Importer::IsImportable(string const & format) -{ - vector loaders = Loaders(); - for (vector::const_iterator it = loaders.begin(); - it != loaders.end(); ++it) - if (converters.IsReachable(format, *it)) - return true; - return false; -} -#endif - - vector const Importer::GetImportableFormats() { vector loaders = Loaders(); @@ -123,3 +119,6 @@ vector const Importer::Loaders() v.push_back("textparagraph"); return v; } + + +} // namespace lyx