]> git.lyx.org Git - lyx.git/blobdiff - src/converter.h
typos
[lyx.git] / src / converter.h
index 6775fb0f1afacc2b2449bff06d50586753ab7b37..6350fd5fdc98a623bb10e4af730386053bb309d4 100644 (file)
 #include <string>
 
 
+namespace lyx {
+
+namespace support { class FileName; }
+
 class Buffer;
+class ErrorList;
 class Format;
 class Formats;
 class OutputParams;
@@ -48,6 +53,8 @@ public:
 
        /// The converter is latex or its derivatives
        bool latex;
+       /// The converter is xml
+       bool xml;
        /// Do we need to run the converter in the original directory?
        bool original_dir;
        /// This converter needs the .aux files
@@ -95,21 +102,27 @@ public:
        std::vector<Format const *> const
        getReachable(std::string const & from, bool only_viewable,
                     bool clear_visited);
-       ///
+       /// Does a conversion path from format \p from to format \p to exist?
        bool isReachable(std::string const & from, std::string const & to);
        ///
        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 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);
+                    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);
        ///
@@ -131,22 +144,31 @@ 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_;
        ///
        std::string latex_command_;
-       ///
-       bool move(std::string const & from, std::string const & to, bool copy);
+       /// 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,
+                 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