]> git.lyx.org Git - lyx.git/blobdiff - src/LayoutModuleList.h
ctests: categorize #12708 test file as resolved
[lyx.git] / src / LayoutModuleList.h
index 245b6a7e693bd54ba3d77080559cade71c0baf2e..babd76022986387e12c1962ff2ba548c5c044b4f 100644 (file)
@@ -1,10 +1,10 @@
 // -*- C++ -*-
 /**
- * \file ModuleList.h
+ * \file LayoutModuleList.h
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Richard Heck
+ * \author Richard Kimberly Heck
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -20,9 +20,9 @@ namespace lyx {
 class LayoutFile;
 
 /**
-       Represents a list of modules, such as might be associated with 
+       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 
+       if a module can be added, and, importantly, adapting the list to a
        new DocumentClass.
 */
 class LayoutModuleList {
@@ -50,14 +50,19 @@ 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_; }
+       /// List of modules as a comma-separated string
+       std::string asString() const;
        /// 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
@@ -72,6 +77,14 @@ public:
        /// to be made.
        bool adaptToBaseClass(LayoutFile const * const lay,
                        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.
@@ -93,5 +106,5 @@ private:
        ///
        std::list<std::string> lml_;
 };
-}
+} // namespace lyx
 #endif