Fix crash when layout file cannot be read due to failure to call makeTextClass() in that case.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20153 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2007-09-08 17:50:09 +00:00
parent ec29fd3461
commit 411b7abcfa
2 changed files with 11 additions and 9 deletions

View File

@ -531,8 +531,9 @@ bool Buffer::readDocument(Lexer & lex)
BOOST_ASSERT(paragraphs().empty());
readHeader(lex);
if (!params().getTextClass().load(filePath())) {
string theclass = params().getTextClass().name();
TextClass const & baseClass = textclasslist[params().getBaseClass()];
if (!baseClass.load(filePath())) {
string theclass = baseClass.name();
Alert::error(_("Can't load document class"), bformat(
_("Using the default document class, because the "
"class %1$s could not be loaded."), from_utf8(theclass)));

View File

@ -1227,17 +1227,18 @@ void BufferParams::setTextClass(TextClass_ptr tc) {
bool BufferParams::setBaseClass(textclass_type tc)
{
if (!textclasslist[tc].load()) {
docstring s = bformat(_("The document class %1$s."
"could not be loaded."),
bool retVal = true;
if (textclasslist[tc].load())
baseClass_ = tc;
else {
docstring s =
bformat(_("The document class %1$s could not be loaded."),
from_utf8(textclasslist[tc].name()));
frontend::Alert::error(_("Could not load class"), s);
return false;
retVal = false;
}
baseClass_ = tc;
makeTextClass();
return true;
return retVal;
}