X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayoutModuleList.h;h=aa9925109d9c6ab25979d60e1bab419df79fd001;hb=801d7dc9f42baf331642606a6641606779985439;hp=2d93bff9a1763497d8060c468e705f5b532a5341;hpb=90c64a5f5e41c8680a9c08bf78e1bb0cee558291;p=lyx.git diff --git a/src/LayoutModuleList.h b/src/LayoutModuleList.h index 2d93bff9a1..aa9925109d 100644 --- a/src/LayoutModuleList.h +++ b/src/LayoutModuleList.h @@ -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 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 @@ -66,6 +75,14 @@ public: /// to be made. bool adaptToBaseClass(LayoutFile const * const lay, std::list 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 lml_; }; -} +} // namespace lyx #endif