X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FModuleList.cpp;h=f5d5dd54b47efeb81323efeea9cd2ec208f82140;hb=4d5bef1bdcbe7a20d67613a793acb89f0e583bf6;hp=d1d4ddedc9c2654c2083c9532d8b9c554a53d567;hpb=62ca7f3ae55ad2e0c395cb554d71afab87de1ee3;p=lyx.git diff --git a/src/ModuleList.cpp b/src/ModuleList.cpp index d1d4ddedc9..f5d5dd54b4 100644 --- a/src/ModuleList.cpp +++ b/src/ModuleList.cpp @@ -18,11 +18,12 @@ #include "support/debug.h" #include "support/FileName.h" +#include "support/gettext.h" #include "support/filetools.h" #include "support/lstrings.h" #include - + using namespace std; using namespace lyx::support; @@ -33,11 +34,11 @@ namespace lyx { ModuleList theModuleList; -LyXModule::LyXModule(string const & n, string const & i, +LyXModule::LyXModule(string const & n, string const & i, string const & d, vector const & p, vector const & r, vector const & e, string const & c): - name_(n), id_(i), description_(d), package_list_(p), + name_(n), id_(i), description_(d), package_list_(p), required_modules_(r), excluded_modules_(e), category_(c), checked_(false) { @@ -45,6 +46,17 @@ LyXModule::LyXModule(string const & n, string const & i, } +vector LyXModule::prerequisites() const { +#ifdef TEX2LYX + return vector(); +#else + if (!checked_) + isAvailable(); + return prerequisites_; +#endif +} + + bool LyXModule::isAvailable() const { #ifdef TEX2LYX return true; @@ -54,16 +66,16 @@ bool LyXModule::isAvailable() const { if (checked_) return available_; checked_ = true; + available_ = true; //check whether all of the required packages are available vector::const_iterator it = package_list_.begin(); - vector::const_iterator end = package_list_.end(); + vector::const_iterator end = package_list_.end(); for (; it != end; ++it) { if (!LaTeXFeatures::isAvailable(*it)) { available_ = false; - return available_; + prerequisites_.push_back(*it); } } - available_ = true; return available_; #endif } @@ -101,27 +113,27 @@ bool LyXModule::areCompatible(string const & mod1, string const & mod2) return true; } + // used when sorting the module list. class ModuleSorter { public: int operator()(LyXModule const & lm1, LyXModule const & lm2) const { - return lm1.getName() < lm2.getName(); + return _(lm1.getName()) < _(lm2.getName()); } }; -//Much of this is borrowed from LayoutFileList::read() +// Much of this is borrowed from LayoutFileList::read() bool ModuleList::read() { FileName const real_file = libFileSearch("", "lyxmodules.lst"); LYXERR(Debug::TCLASS, "Reading modules from `" << real_file << '\''); if (real_file.empty()) { - LYXERR0("unable to find modules file `" - << to_utf8(makeDisplayPath(real_file.absFileName(), 1000)) - << "'.\nNo modules will be available."); + LYXERR0("unable to find modules file `lyxmodules.lst'.\n" + << "No modules will be available."); return false; } @@ -199,7 +211,7 @@ bool ModuleList::read() addLayoutModule(modname, fname, desc, pkgs, req, exc, catgy); } // end switch } //end while - + LYXERR(Debug::TCLASS, "End of parsing of lyxmodules.lst"); if (!theModuleList.empty()) @@ -208,7 +220,7 @@ bool ModuleList::read() } -void ModuleList::addLayoutModule(string const & modname, +void ModuleList::addLayoutModule(string const & modname, string const & filename, string const & description, vector const & pkgs, vector const & req, vector const & exc, string const & catgy)