X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayoutModuleList.h;h=babd76022986387e12c1962ff2ba548c5c044b4f;hb=61d68d05bd0f2172ab9406f23dc2640e6b9ac56b;hp=245b6a7e693bd54ba3d77080559cade71c0baf2e;hpb=7cf4a9fb9fd95317da8a225d2e8eb7278dbd1c03;p=features.git diff --git a/src/LayoutModuleList.h b/src/LayoutModuleList.h index 245b6a7e69..babd760229 100644 --- a/src/LayoutModuleList.h +++ b/src/LayoutModuleList.h @@ -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 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 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 lml_; }; -} +} // namespace lyx #endif