]> git.lyx.org Git - lyx.git/blobdiff - src/converter.h
* support/qstring_helpers.h: erase ucs4_to_qstring() method.
[lyx.git] / src / converter.h
index f5f66ed810eddb1c9caf77c99bf25ef01c6c34bc..6350fd5fdc98a623bb10e4af730386053bb309d4 100644 (file)
 #include <string>
 
 
+namespace lyx {
+
+namespace support { class FileName; }
+
 class Buffer;
+class ErrorList;
 class Format;
 class Formats;
 class OutputParams;
@@ -103,16 +108,21 @@ public:
        Graph::EdgePath const getPath(std::string const & from, std::string const & to);
        ///
        OutputParams::FLAVOR getFlavor(Graph::EdgePath const & path);
+       /// Flags for converting files
+       enum ConversionFlags {
+               /// No special flags
+               none = 0,
+               /// Use the default converter if no converter is defined
+               try_default = 1 << 0,
+               /// Get the converted file from cache if possible
+               try_cache = 1 << 1
+       };
        ///
        bool convert(Buffer const * buffer,
-                    std::string const & from_file, std::string const & to_file_base,
-                    std::string const & from_format, std::string const & to_format,
-                     std::string & to_file, bool try_default = false);
-       ///
-       bool convert(Buffer const * buffer,
-                    std::string const & from_file, std::string const & to_file_base,
-                    std::string const & from_format, std::string const & to_format,
-                     bool try_default = false);
+                    support::FileName const & from_file, support::FileName const & to_file,
+                    support::FileName const & orig_from,
+                    std::string const & from_format, std::string const & to_format,
+                    ErrorList & errorList, int conversionflags = none);
        ///
        void update(Formats const & formats);
        ///
@@ -134,10 +144,10 @@ private:
        intToFormat(std::vector<int> const & input);
        ///
        bool scanLog(Buffer const & buffer, std::string const & command,
-                    std::string const & filename);
+                    support::FileName const & filename, ErrorList & errorList);
        ///
        bool runLaTeX(Buffer const & buffer, std::string const & command,
-                     OutputParams const &);
+                     OutputParams const &, ErrorList & errorList);
        ///
        ConverterList converterlist_;
        ///
@@ -145,14 +155,20 @@ private:
        /// If \p from = /path/file.ext and \p to = /path2/file2.ext2 then
        /// this method moves each /path/file*.ext file to /path2/file2*.ext2
        bool move(std::string const & fmt,
-                 std::string const & from, std::string const & to,
+                 support::FileName const & from, support::FileName const & to,
                  bool copy);
        ///
        Graph G_;
 };
 
-extern Converters converters;
+/// The global instance.
+/// Implementation is in lyx_main.C.
+extern Converters & theConverters();
+
+/// The global copy after reading lyxrc.defaults.
+/// Implementation is in lyx_main.C.
+extern Converters & theSystemConverters();
 
-extern Converters system_converters;
+} // namespace lyx
 
 #endif //CONVERTER_H