]> git.lyx.org Git - lyx.git/blobdiff - src/Format.h
listerrors.lyx : Update a link.
[lyx.git] / src / Format.h
index 623ed26f7df18d39cbbbb816393ced5587ec8bbd..12e14f9e15b04299d4e0efa3839bd2202f47d2cf 100644 (file)
@@ -18,7 +18,6 @@
 
 #include <vector>
 
-
 namespace lyx {
 
 namespace support { class FileName; }
@@ -37,7 +36,9 @@ public:
                /// Set if this format can contain vector graphics.
                vector = 2,
                /// This format should  appear in the File > Export menu
-               export_menu = 4
+               export_menu = 4,
+               /// This may be a compressed file but doesn't need decompression
+               zipped_native = 8
        };
        ///
        Format(std::string const & n, std::string const & e, std::string const & p,
@@ -62,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);
        ///
@@ -89,13 +90,13 @@ public:
        void setFlags(int v) { flags_ = v; }
        ///
        bool inExportMenu() const { return flags_ & export_menu; }
+       ///
+       bool zippedNative() const { return flags_ & zipped_native; }
 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.
@@ -138,6 +139,15 @@ public:
         * string.
         */
        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;
        /// Set editor and/or viewer to "auto" for formats that can be
        /// opened by the OS.
        void setAutoOpen();