-
- // add any default modules not already in use
- list<string> const & mods = baseClass()->defaultModules();
- list<string>::const_iterator mit = mods.begin();
- list<string>::const_iterator men = mods.end();
-
- // we want to add these to the front, but in the right order,
- // so we collect them here first.
- list<string> modulesToAdd;
-
- for (; mit != men; mit++) {
- string const & modName = *mit;
- // see if we're already in use
- if (find(layoutModules_.begin(), layoutModules_.end(), modName) !=
- layoutModules_.end()) {
- LYXERR(Debug::TCLASS, "Default module `" << modName <<
- "' not added because already used.");
- continue;
- }
- // make sure the user hasn't removed it
- if (find(removedModules_.begin(), removedModules_.end(), modName) !=
- removedModules_.end()) {
- LYXERR(Debug::TCLASS, "Default module `" << modName <<
- "' not added because removed by user.");
- continue;
- }
-
- // Now we want to check the list of selected modules to see if any of them
- // excludes this one, or if we exclude one of them.
- LyXModule * thismod = moduleList[modName];
- if (!thismod) {
- LYXERR0("Adding default module " << modName <<
- " even though it is unavailable.");
- modulesToAdd.push_back(modName);
- continue;
- }
-
- bool foundit = false;
- vector<string> const ourExcMods = thismod->getExcludedModules();
- vector<string>::const_iterator const eit = ourExcMods.begin();
- vector<string>::const_iterator const een = ourExcMods.end();
-
- // so iterate over the selected modules...
- LayoutModuleList::const_iterator lit = layoutModules_.begin();
- LayoutModuleList::const_iterator const len = layoutModules_.end();
- for (; lit != len; lit++) {
- LyXModule * lm = moduleList[*lit];
- if (!lm)
- continue;
- vector<string> const & exc = lm->getExcludedModules();
- // ...and see if this one excludes us.
- if (find(exc.begin(), exc.end(), modName) != exc.end()) {
- foundit = true;
- LYXERR(Debug::TCLASS, "Default module `" << modName <<
- "' not added because excluded by loaded module `" <<
- *lit << "'.");
- break;
- }
- if (find(eit, een, *lit) != een) {
- foundit = true;
- LYXERR(Debug::TCLASS, "Default module `" << modName <<
- "' not added because it excludes loaded module `" <<
- *lit << "'.");
- break;
- }
- }
-
- if (!foundit) {
- LYXERR(Debug::TCLASS, "Default module `" << modName << "' added.");
- modulesToAdd.push_back(modName);
- }
- }
-
- layoutModules_.insert(layoutModules_.begin(), modulesToAdd.begin(), modulesToAdd.end());