mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-09-20 06:49:56 +00:00
Fix bug reported by Philippe relating to excluded modules: Excluded
modules need to be removed before anything else is done. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27276 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
b65ef30b34
commit
b0035f07b1
@ -1468,6 +1468,25 @@ void BufferParams::setDocumentClass(DocumentClass const * const tc) {
|
||||
}
|
||||
|
||||
|
||||
void BufferParams::removeExcludedModules()
|
||||
{
|
||||
// remove any modules the new base class excludes
|
||||
list<string> oldModules = getModules();
|
||||
clearLayoutModules();
|
||||
list<string>::const_iterator oit = oldModules.begin();
|
||||
list<string>::const_iterator oen = oldModules.end();
|
||||
list<string> const & exclmods = baseClass()->excludedModules();
|
||||
for (; oit != oen; ++oit) {
|
||||
// are we excluded by the document class?
|
||||
if (find(exclmods.begin(), exclmods.end(), *oit) != exclmods.end()) {
|
||||
LYXERR0("Module " << *oit << " dropped because excluded by document class.");
|
||||
continue;
|
||||
}
|
||||
layoutModules_.push_back(*oit);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BufferParams::addDefaultModules()
|
||||
{
|
||||
// add any default modules not already in use
|
||||
@ -1525,7 +1544,7 @@ bool BufferParams::checkModuleConsistency() {
|
||||
// are we excluded by the document class?
|
||||
if (find(exclmods.begin(), exclmods.end(), modname) != exclmods.end()) {
|
||||
consistent = false;
|
||||
LYXERR0("Module " << modname << " dropped because excluded by document class.");
|
||||
LYXERR0("WARNING: Module " << modname << " should already have been dropped!");
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1627,6 +1646,7 @@ bool BufferParams::setBaseClass(string const & classname)
|
||||
}
|
||||
|
||||
pimpl_->baseClass_ = classname;
|
||||
removeExcludedModules();
|
||||
addDefaultModules();
|
||||
checkModuleConsistency();
|
||||
|
||||
|
@ -346,6 +346,8 @@ private:
|
||||
///
|
||||
void readRemovedModules(Lexer &);
|
||||
///
|
||||
void removeExcludedModules();
|
||||
///
|
||||
void addDefaultModules();
|
||||
/// checks for consistency among modules: makes sure requirements
|
||||
/// are met, no modules exclude one another, etc, and resolves any
|
||||
|
Loading…
Reference in New Issue
Block a user