]> git.lyx.org Git - lyx.git/blobdiff - src/LayoutFile.h
Add Qt's Svg module to the list of used modules. This is required to allow the use...
[lyx.git] / src / LayoutFile.h
index 6ecc035da57f172e5aaeb6ad726ee7e6842bdbfa..e911aa5a6b41f2ece4a7d9a97b147194bb7958d1 100644 (file)
@@ -18,9 +18,6 @@
 
 #include "support/strfwd.h"
 
-#include <boost/noncopyable.hpp>
-
-#include <set>
 #include <string>
 #include <vector>
 
@@ -29,17 +26,13 @@ namespace lyx {
 
 class Layout;
 
-/// Reads the style files
-extern bool LyXSetStyle();
-
-
 /// Index into LayoutFileList. Basically a 'strong typedef'.
 class LayoutFileIndex {
 public:
        ///
        typedef std::string base_type;
        ///
-       LayoutFileIndex(base_type t) { data_ = t; }
+       LayoutFileIndex(base_type const & t) : data_(t) { }
        ///
        operator base_type() const { return data_; }
        ///
@@ -61,10 +54,10 @@ private:
 /// Buffer-specific information should therefore be placed in a
 /// DocumentClass object.
 /// 
-class LayoutFile : public TextClass, boost::noncopyable {
+class LayoutFile : public TextClass {
 public:
        /// check whether the TeX class is available
-       bool isTeXClassAvailable() const { return texClassAvail_; }
+       bool isTeXClassAvailable() const { return tex_class_avail_; }
        ///
        LayoutModuleList const & defaultModules() const 
                        { return default_modules_; }
@@ -75,17 +68,21 @@ public:
        LayoutModuleList const & excludedModules() const 
                        { return excluded_modules_; }
 private:
+       /// noncopyable
+       LayoutFile(LayoutFile const &);
+       void operator=(LayoutFile const &);
        /// Construct a layout with default values. Actual values loaded later.
        explicit LayoutFile(std::string const & filename,
                        std::string const & className = std::string(),
                        std::string const & description = std::string(),
                        std::string const & prerequisites = std::string(),
+                       std::string const & category = std::string(),
                        bool texclassavail = false);
        /// The only class that should create a LayoutFile is
        /// LayoutFileList, which calls the private constructor.
        friend class LayoutFileList;
        /// can't create empty LayoutFile
-       LayoutFile() {};
+       LayoutFile() {}
 };
 
 
@@ -94,8 +91,6 @@ private:
 /// via LayoutFileList::get()
 class LayoutFileList {
 public:
-       ///
-       LayoutFileList() {}
        ///
        ~LayoutFileList();
        /// \return The sole instance of this class.
@@ -115,14 +110,17 @@ public:
        /// Clears the textclass so as to force it to be reloaded
        void reset(LayoutFileIndex const & tc);
 
-       /// add a default textclass with all standard layouts.
+       /// Add a default textclass with all standard layouts.
+       /// Note that this will over-write any information we may have
+       /// gotten from textclass.lst about this class.
        LayoutFileIndex addEmptyClass(std::string const & textclass);
 
        /// add a textclass from user local directory.
        /// \return the identifier for the loaded file, or else an
        /// empty string if no file was loaded.
-       LayoutFileIndex
-               addLocalLayout(std::string const & textclass, std::string const & path);
+       LayoutFileIndex addLocalLayout(std::string const & textclass,
+                                      std::string const & path,
+                                      std::string const & oldpath = empty_string());
        /// a list of the available classes
        std::vector<LayoutFileIndex> classList() const;
 
@@ -130,6 +128,8 @@ public:
        bool load(std::string const & name, std::string const & buf_path);
 
 private:
+       ///
+       LayoutFileList() {}
        ///
        typedef std::map<std::string, LayoutFile *> ClassMap;
        /// noncopyable