]> git.lyx.org Git - lyx.git/blobdiff - src/Format.h
Revert "Fix commented out code"
[lyx.git] / src / Format.h
index e076934cb5935ec3055d37f45b09401afa5beed5..d1d6d74183cf8c78b8fb26c4fdaadc298308d3b0 100644 (file)
 #ifndef FORMAT_H
 #define FORMAT_H
 
-#include "support/docstring.h"
+#include "support/strfwd.h"
 #include "support/trivstring.h"
 
-#include "OutputParams.h"
-
 #include <vector>
+#include <string>
 
 namespace lyx {
 
@@ -25,6 +24,8 @@ namespace support { class FileName; }
 
 class Buffer;
 
+enum class Flavor : int;
+
 class Format {
 public:
        /// Flags for some format properties
@@ -39,7 +40,9 @@ public:
                /// This format should  appear in the File > Export menu
                export_menu = 4,
                /// This may be a compressed file but doesn't need decompression
-               zipped_native = 8
+               zipped_native = 8,
+               /// This format should not appear in a menu at all
+               no_menu = 16
        };
        ///
        Format(std::string const & n, std::string const & e, docstring const & p,
@@ -96,6 +99,8 @@ public:
        ///
        bool inExportMenu() const { return flags_ & export_menu; }
        ///
+       bool noMenu() const { return flags_ & no_menu; }
+       ///
        bool zippedNative() const { return flags_ & zipped_native; }
        ///
        static bool formatSorter(Format const * lhs, Format const * rhs);
@@ -148,6 +153,8 @@ public:
        Format & get(FormatList::size_type i) { return formatlist_[i]; }
        /// \returns format named \p name if it exists, otherwise 0
        Format const * getFormat(std::string const & name) const;
+       /// \returns format named \p name if it exists, otherwise 0
+       Format * getFormat(std::string const & name);
        /*!
         * Get the format of \p filename from file contents or, if this
         * fails, from file extension.
@@ -213,14 +220,17 @@ private:
 };
 
 ///
-std::string flavor2format(OutputParams::FLAVOR flavor);
+std::string flavor2format(Flavor flavor);
 // Not currently used.
-// OutputParams::FLAVOR format2flavor(std::string fmt);
-
-extern Formats formats;
+// Flavor format2flavor(std::string fmt);
 
-extern Formats system_formats;
+/// The global instance.
+/// Implementation is in LyX.cpp.
+extern Formats & theFormats();
 
+/// The global copy after reading lyxrc.defaults.
+/// Implementation is in LyX.cpp.
+extern Formats & theSystemFormats();
 
 } // namespace lyx