]> git.lyx.org Git - lyx.git/blobdiff - src/converter.h
hopefully fix tex2lyx linking.
[lyx.git] / src / converter.h
index a244198e8bee46b7daff7a1b4e47737b6d342779..9cec2c122b132ddf1734532f4267eea9952ed688 100644 (file)
 #define CONVERTER_H
 
 #include "graph.h"
+#include "outputparams.h"
 
 #include <vector>
 #include <string>
 
 
+namespace lyx {
+
+
 class Buffer;
+class ErrorList;
 class Format;
 class Formats;
-class LatexRunParams;
+class OutputParams;
 
 
 ///
@@ -47,6 +52,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
@@ -76,9 +83,10 @@ public:
                return converterlist_[i];
        }
        ///
-       Converter const * getConverter(std::string const & from, std::string const & to);
+       Converter const * getConverter(std::string const & from,
+                                      std::string const & to) const;
        ///
-       int getNumber(std::string const & from, std::string const & to);
+       int getNumber(std::string const & from, std::string const & to) const;
        ///
        void add(std::string const & from, std::string const & to,
                 std::string const & command, std::string const & flags);
@@ -93,21 +101,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);
        ///
-       bool usePdflatex(Graph::EdgePath const & path);
-       ///
-       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);
+       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 const & from_file, std::string const & to_file,
+                    std::string const & orig_from,
+                    std::string const & from_format, std::string const & to_format,
+                    ErrorList & errorList, int conversionflags = none);
        ///
        void update(Formats const & formats);
        ///
@@ -129,16 +143,19 @@ private:
        intToFormat(std::vector<int> const & input);
        ///
        bool scanLog(Buffer const & buffer, std::string const & command,
-                    std::string const & filename);
+                    std::string const & filename, ErrorList & errorList);
        ///
        bool runLaTeX(Buffer const & buffer, std::string const & command,
-                     LatexRunParams 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,
+                 std::string const & from, std::string const & to,
+                 bool copy);
        ///
        Graph G_;
 };
@@ -147,4 +164,7 @@ extern Converters converters;
 
 extern Converters system_converters;
 
+
+} // namespace lyx
+
 #endif //CONVERTER_H