]> git.lyx.org Git - lyx.git/blobdiff - src/Format.h
More no-math fonts
[lyx.git] / src / Format.h
index 21721fa8e6c10cfcfb1a480b5aaf1c11bbfb06f6..9d91ae1442f7edaa380c30461d4d6b3c885196e1 100644 (file)
@@ -17,8 +17,6 @@
 #include "OutputParams.h"
 
 #include <vector>
-#include <map>
-#include <ctime>
 
 namespace lyx {
 
@@ -45,7 +43,7 @@ public:
        ///
        Format(std::string const & n, std::string const & e, std::string const & p,
               std::string const & s, std::string const & v, std::string const & ed,
-              int);
+              std::string const & m, int);
        ///
        bool dummy() const;
        /// Is \p ext a valid filename extension for this format?
@@ -65,7 +63,7 @@ public:
                return extension_list_.empty() ? empty_string() : extension_list_[0];
        }
        ///
-       std::string const & extensions() const { return extensions_; }
+       std::string const extensions() const;
        ///
        void setExtensions(std::string const & v);
        ///
@@ -85,6 +83,10 @@ public:
        ///
        void setEditor(std::string const & v) { editor_ = v; }
        ///
+       std::string const & mime() const { return mime_; }
+       ///
+       void setMime(std::string const & m) { mime_ = m; }
+       ///
        bool documentFormat() const { return flags_ & document; }
        ///
        bool vectorFormat() const { return flags_ & vector; }
@@ -98,9 +100,7 @@ private:
        /// Internal name. Needs to be unique.
        std::string name_;
        /// Filename extensions, the first one being the default
-       mutable std::vector<std::string> extension_list_;
-       /// All filename extensions
-       std::string extensions_;
+       std::vector<std::string> extension_list_;
        /// Name presented to the user. Needs to be unique.
        std::string prettyname_;
        /// Keyboard shortcut for the View and Export menu.
@@ -115,6 +115,14 @@ private:
        std::string viewer_;
        /// Editor for this format. \sa viewer_.
        std::string editor_;
+       /*!
+        * Full MIME type, e.g. "text/x-tex".
+        * Only types listed by the shared MIME database of freedesktop.org
+        * should be added.
+        * This field may be empty, but it must be unique across all formats
+        * if it is set.
+        */
+       std::string mime_;
        ///
        int flags_;
 };
@@ -145,11 +153,17 @@ public:
        std::string getFormatFromFile(support::FileName const & filename) const;
        /// Finds a format from a file extension. Returns string() if not found.
        std::string getFormatFromExtension(std::string const & ext) const;
+       /// Finds a format by pretty name. Returns string() if not found.
+       std::string getFormatFromPrettyName(std::string const & prettyname) const;
        /** Returns true if the file referenced by \p filename is zipped and
         ** needs to be unzipped for being handled
         ** @note For natively zipped formats, such as dia/odg, this returns false.
         **/
        bool isZippedFile(support::FileName const & filename) const;
+       /// check for zipped file format
+       static bool isZippedFileFormat(std::string const & format);
+       /// check for PostScript file format
+       static bool isPostScriptFileFormat(std::string const & format);
        /// Set editor and/or viewer to "auto" for formats that can be
        /// opened by the OS.
        void setAutoOpen();
@@ -161,7 +175,7 @@ public:
        void add(std::string const & name, std::string const & extensions,
                 std::string const & prettyname, std::string const & shortcut,
                 std::string const & viewer, std::string const & editor,
-                int flags);
+                std::string const & mime, int flags);
        ///
        void erase(std::string const & name);
        ///
@@ -191,14 +205,6 @@ public:
 private:
        ///
        FormatList formatlist;
-       /// Used to store last timestamp of file and whether it is (was) zipped
-       struct ZippedInfo {
-               bool zipped; std::time_t timestamp;
-               ZippedInfo(bool zipped, std::time_t timestamp)
-               : zipped(zipped), timestamp(timestamp) { }
-       };
-       ///
-       mutable std::map<std::string, ZippedInfo> zipped_;
 };
 
 ///