]> git.lyx.org Git - lyx.git/blobdiff - src/exporter.h
Rewording in GTK document dialog
[lyx.git] / src / exporter.h
index 826ce82addbed93bbc99ccca5073a310ed37a58a..9bd2d038aca805b2b610a5de3e09617c75e1c80b 100644 (file)
@@ -13,6 +13,7 @@
 #ifndef EXPORTER_H
 #define EXPORTER_H
 
+#include <map>
 #include <string>
 #include <vector>
 
@@ -42,4 +43,54 @@ public:
        GetExportableFormats(Buffer const & buffer, bool only_viewable);
        ///
 };
+
+
+class ExportedFile {
+public:
+       ExportedFile(std::string const &, std::string const &);
+       /// absolute name of the source file
+       std::string sourceName;
+       /// final name that the exported file should get (absolute name or
+       /// relative to the directory of the master document)
+       std::string exportName;
+};
+
+
+bool operator==(ExportedFile const &, ExportedFile const &);
+
+
+class ExportData {
+public:
+       /** add a referenced file for one format.
+        *  No inset should ever write any file outside the tempdir.
+        *  Instead, files that need to be exported have to be registered
+        *  with this method.
+        *  Then the exporter mechanism copies them to the right place, asks
+        *  for confirmation before overwriting existing files etc.
+        * \param format     format that references the given file
+        * \param sourceName source file name. Needs to be absolute
+        * \param exportName resulting file name. Can be either absolute
+        *                   or relative to the exported document.
+        */
+       void addExternalFile(std::string const & format,
+                            std::string const & sourceName,
+                            std::string const & exportName);
+       /** add a referenced file for one format.
+        *  The final name is the source file name without path.
+        * \param format     format that references the given file
+        * \param sourceName source file name. Needs to be absolute
+        */
+       void addExternalFile(std::string const & format,
+                            std::string const & sourceName);
+       /// get referenced files for \p format
+       std::vector<ExportedFile> const
+       externalFiles(std::string const & format) const;
+private:
+       typedef std::map<std::string, std::vector<ExportedFile> > FileMap;
+       /** Files that are referenced by the export result in the
+        *  different formats.
+        */
+       FileMap externalfiles;
+};
+
 #endif