From: Martin Vermeer Date: Tue, 5 Apr 2005 11:00:09 +0000 (+0000) Subject: Multiple external requirements X-Git-Tag: 1.6.10~14426 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=958bd96f539bcca03283e144b935abf7e3747af1;p=features.git Multiple external requirements git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9780 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 3c4a5fdfc6..6533543083 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ +2005-04-05 Martin Vermeer + + * insetexternal.C (validate): + * ExternalTemplate.[Ch] (dumpFormat, readFormat): allow + multiple Requirements in external material template 2005-04-03 Alfredo Braunstein diff --git a/src/insets/ExternalTemplate.C b/src/insets/ExternalTemplate.C index 1976677594..5653623d4d 100644 --- a/src/insets/ExternalTemplate.C +++ b/src/insets/ExternalTemplate.C @@ -126,8 +126,14 @@ public: ost << "\tFormat " << vt.first << '\n' << "\t\tProduct " << ft.product << '\n' << "\t\tUpdateFormat " << ft.updateFormat << '\n' - << "\t\tUpdateResult " << ft.updateResult << '\n' - << "\t\tRequirement " << ft.requirement << '\n'; + << "\t\tUpdateResult " << ft.updateResult << '\n'; + + vector::const_iterator qit = ft.requirements.begin(); + vector::const_iterator qend = ft.requirements.end(); + for (; qit != qend; ++qit) { + lyxerr << "req:" << *qit << std::endl; + ost << "\t\tRequirement " << *qit << '\n'; + } typedef vector Options; Options::const_iterator oit = ft.options.begin(); @@ -502,7 +508,7 @@ void Template::Format::readFormat(LyXLex & lex) case FO_REQUIREMENT: lex.next(true); - requirement = lex.getString(); + requirements.push_back(lex.getString()); break; case FO_PREAMBLE: diff --git a/src/insets/ExternalTemplate.h b/src/insets/ExternalTemplate.h index e7ad152145..99cededd12 100644 --- a/src/insets/ExternalTemplate.h +++ b/src/insets/ExternalTemplate.h @@ -70,7 +70,7 @@ public: /// The format of this file. std::string updateFormat; /// What features does this external inset require? - std::string requirement; + std::vector requirements; /// A collection of preamble snippets identified by name. std::vector preambleNames; /// A list of options to the basic command. diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index d983950d3e..e985ae175e 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -737,13 +737,15 @@ void InsetExternal::validate(LaTeXFeatures & features) const if (cit == et.formats.end()) return; - if (!cit->second.requirement.empty()) - features.require(cit->second.requirement); + vector::const_iterator it = cit->second.requirements.begin(); + vector::const_iterator end = cit->second.requirements.end(); + for (; it != end; ++it) + features.require(*it); external::TemplateManager & etm = external::TemplateManager::get(); - vector::const_iterator it = cit->second.preambleNames.begin(); - vector::const_iterator end = cit->second.preambleNames.end(); + it = cit->second.preambleNames.begin(); + end = cit->second.preambleNames.end(); for (; it != end; ++it) { string const preamble = etm.getPreambleDefByName(*it); if (!preamble.empty())