X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fconverter.h;h=6350fd5fdc98a623bb10e4af730386053bb309d4;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=801b4c3cbf542a2545324cd383974dfe110ee740;hpb=3dfe7a4734fb5c4f4c8c5615ef9df38d882e5179;p=lyx.git diff --git a/src/converter.h b/src/converter.h index 801b4c3cbf..6350fd5fdc 100644 --- a/src/converter.h +++ b/src/converter.h @@ -19,7 +19,12 @@ #include +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 @@ -77,9 +84,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); @@ -94,21 +102,27 @@ public: std::vector 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); /// @@ -130,22 +144,31 @@ private: intToFormat(std::vector 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