1 /* This file is part of
2 * ======================================================
4 * LyX, The Document Processor
6 * Copyright 1995 Matthias Ettrich
7 * Copyright 1995-2000 The LyX Team.
9 * ====================================================== */
14 #pragma implementation
21 #include "converter.h"
24 #include "support/path.h"
30 extern void ShowMessage(Buffer * buf,
32 string const & msg2 = string(),
33 string const & msg3 = string(), int delay = 6);
35 bool Exporter::Export(Buffer * buffer, string const & format0,
38 string using_format, format;
39 using_format = Converter::SplitFormat(format0, format);
41 string filename = buffer->fileName();
42 string backend_format = BufferExtension(buffer);
43 bool only_backend = backend_format == format;
45 //string file = buffer->getLatexName(true);
46 string file = filename;
47 if (!buffer->tmppath.empty())
48 file = AddName(buffer->tmppath, file);
49 file = ChangeExtension(file, backend_format);
51 if (buffer->isLinuxDoc())
52 buffer->makeLinuxDocFile(file, only_backend);
53 else if (only_backend)
54 buffer->makeLaTeXFile(file, string(), true);
56 buffer->makeLaTeXFile(file, buffer->filepath, false);
58 bool return_value = Converter::convert(buffer, file, format0);
62 if (!put_in_tempdir) {
63 file = ChangeExtension(file, format);
64 string outfile = ChangeExtension(filename, format);
66 rename(file.c_str(), outfile.c_str());
69 _("Document exported as ")
70 + Formats::PrettyName(format)
72 + MakeDisplayPath(outfile) +'\'');
78 bool Exporter::Preview(Buffer * buffer, string const & format0)
80 if (!Export(buffer, format0, true))
84 Converter::SplitFormat(format0, format);
86 string filename = buffer->fileName();
87 if (!buffer->tmppath.empty())
88 filename = AddName(buffer->tmppath, filename);
89 filename = ChangeExtension(filename, format);
90 return Formats::View(filename);
94 vector<pair<string, string> > Exporter::GetExportableFormats(Buffer * buffer)
96 return Converter::GetReachable(BufferExtension(buffer), false);
100 vector<pair<string, string> > Exporter::GetViewableFormats(Buffer * buffer)
102 return Converter::GetReachable(BufferExtension(buffer), true);
105 string Exporter::BufferExtension(Buffer * buffer)
107 if (buffer->isLinuxDoc())