Avoid loading local layout file multiple times

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21983 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Bo Peng 2007-12-05 22:28:16 +00:00
parent 93c7c89beb
commit f1821946dc

View File

@ -209,11 +209,18 @@ TextClassList::addTextClass(std::string const & textclass, std::string const & p
if (regex_match(line, sub, reg)) {
// returns: whole string, classtype (not used here), first option, description
BOOST_ASSERT(sub.size()==4);
// now, add the layout to textclass.
// now, create a TextClass with description containing path information
TextClass tmpl(textclass, sub.str(2)==""?textclass:sub.str(2),
sub.str(3) + " <" + path + ">", true);
if (lyxerr.debugging(Debug::TCLASS))
tmpl.load(path);
// Do not add this local TextClass to classlist_ if it has
// already been loaded by, for example, a master buffer.
pair<bool, lyx::textclass_type> pp =
textclasslist.numberOfClass(textclass);
// only layouts from the same directory are considered to be identical.
if (pp.first && classlist_[pp.second].description() == tmpl.description())
return pp;
classlist_.push_back(tmpl);
return make_pair(true, classlist_.size() - 1);
}