mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
Move the default module loading from makeDocumentClass() to setBaseClass().
This makes the Document>Settings dialog behave better. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25882 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
2bb93b6c54
commit
a28c584064
@ -1428,40 +1428,16 @@ bool BufferParams::setBaseClass(string const & classname)
|
||||
bcl.addEmptyClass(classname);
|
||||
}
|
||||
|
||||
if (bcl[classname].load()) {
|
||||
pimpl_->baseClass_ = classname;
|
||||
return true;
|
||||
bool const success = bcl[classname].load();
|
||||
if (!success) {
|
||||
docstring s =
|
||||
bformat(_("The document class %1$s could not be loaded."),
|
||||
from_utf8(classname));
|
||||
frontend::Alert::error(_("Could not load class"), s);
|
||||
return false;
|
||||
}
|
||||
|
||||
docstring s =
|
||||
bformat(_("The document class %1$s could not be loaded."),
|
||||
from_utf8(classname));
|
||||
frontend::Alert::error(_("Could not load class"), s);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
LayoutFile const * BufferParams::baseClass() const
|
||||
{
|
||||
if (LayoutFileList::get().haveClass(pimpl_->baseClass_))
|
||||
return &(LayoutFileList::get()[pimpl_->baseClass_]);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
LayoutFileIndex const & BufferParams::baseClassID() const
|
||||
{
|
||||
return pimpl_->baseClass_;
|
||||
}
|
||||
|
||||
|
||||
void BufferParams::makeDocumentClass()
|
||||
{
|
||||
if (!baseClass())
|
||||
return;
|
||||
|
||||
doc_class_ = &(DocumentClassBundle::get().newClass(*baseClass()));
|
||||
pimpl_->baseClass_ = classname;
|
||||
|
||||
// add any required modules not already in use
|
||||
set<string> const & mods = baseClass()->defaultModules();
|
||||
@ -1497,6 +1473,31 @@ void BufferParams::makeDocumentClass()
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
LayoutFile const * BufferParams::baseClass() const
|
||||
{
|
||||
if (LayoutFileList::get().haveClass(pimpl_->baseClass_))
|
||||
return &(LayoutFileList::get()[pimpl_->baseClass_]);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
LayoutFileIndex const & BufferParams::baseClassID() const
|
||||
{
|
||||
return pimpl_->baseClass_;
|
||||
}
|
||||
|
||||
|
||||
void BufferParams::makeDocumentClass()
|
||||
{
|
||||
if (!baseClass())
|
||||
return;
|
||||
|
||||
doc_class_ = &(DocumentClassBundle::get().newClass(*baseClass()));
|
||||
|
||||
// FIXME It might be worth loading the children's modules here,
|
||||
// just as we load their bibliographies and such, instead of just
|
||||
|
@ -1323,6 +1323,11 @@ void GuiDocument::classChanged()
|
||||
bp_.useClassDefaults();
|
||||
paramsToDialog(bp_);
|
||||
}
|
||||
// FIXME There's a little bug here connected with auto_reset, namely,
|
||||
// that, if the preceding is skipped and the user has changed the
|
||||
// modules before changing the class, those changes will be lost on
|
||||
// update. But maybe that's what we want?
|
||||
updateSelectedModules();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user