]> git.lyx.org Git - lyx.git/blobdiff - src/LayoutModuleList.h
Fix quotation marks in PDF TOC
[lyx.git] / src / LayoutModuleList.h
index d2a3efc181f28a38a16273e194086d3bba54d1d4..aa9925109d9c6ab25979d60e1bab419df79fd001 100644 (file)
@@ -19,6 +19,12 @@ namespace lyx {
 
 class LayoutFile;
 
+/**
+       Represents a list of modules, such as might be associated with
+       a particular document. Provides methods for adding modules, checking
+       if a module can be added, and, importantly, adapting the list to a
+       new DocumentClass.
+*/
 class LayoutModuleList {
 public:
        ///
@@ -44,14 +50,17 @@ public:
                { return lml_.insert(pos, str); }
        ///
        void push_back(std::string const & str) { lml_.push_back(str); }
-       /// 
+       ///
        size_t size() const { return lml_.size(); }
        /// This is needed in GuiDocument. It seems better than an
        /// implicit conversion.
        std::list<std::string> const & list() const { return lml_; }
        /// Checks to make sure module's requriements are satisfied, that it does
        /// not conflict with already-present modules, isn't already loaded, etc.
-       bool moduleCanBeAdded(std::string const & modName, 
+       bool moduleCanBeAdded(std::string const & modName,
+                       LayoutFile const * const lay) const;
+       /// Like !moduleCanBeAdded(), but does not check requirements
+       bool moduleConflicts(std::string const & modName,
                        LayoutFile const * const lay) const;
        /// If the user changes the base class for a given document, then the
        /// associated module list has to be updated. This just calls
@@ -65,7 +74,15 @@ public:
        /// \return true if no changes had to be made, false if some did have
        /// to be made.
        bool adaptToBaseClass(LayoutFile const * const lay,
-                       std::list<std::string> removedModules);
+                       std::list<std::string> const & removedModules);
+       ///
+       bool operator==(LayoutModuleList const & other) const {
+               return lml_ == other.lml_;
+       }
+       ///
+       bool operator!=(LayoutModuleList const & other) const {
+               return !operator==(other);
+       }
 private:
        /// Removes modules excluded by, provided by, etc, the base class.
        /// \param lay The document class against which to check.
@@ -87,5 +104,5 @@ private:
        ///
        std::list<std::string> lml_;
 };
-}
+} // namespace lyx
 #endif