]> git.lyx.org Git - features.git/commitdiff
Multiple external requirements
authorMartin Vermeer <martin.vermeer@hut.fi>
Tue, 5 Apr 2005 11:00:09 +0000 (11:00 +0000)
committerMartin Vermeer <martin.vermeer@hut.fi>
Tue, 5 Apr 2005 11:00:09 +0000 (11:00 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9780 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/ChangeLog
src/insets/ExternalTemplate.C
src/insets/ExternalTemplate.h
src/insets/insetexternal.C

index 3c4a5fdfc6346bc36438032c8e3de33141c40b12..65335430836ea5c8397da9de68770b8d69153cdd 100644 (file)
@@ -1,3 +1,8 @@
+2005-04-05  Martin Vermeer  <martin.vermeer@hut.fi>
+
+       * insetexternal.C (validate):
+       * ExternalTemplate.[Ch] (dumpFormat, readFormat): allow 
+       multiple Requirements in external material template
 
 2005-04-03  Alfredo Braunstein  <abraunst@lyx.org>
 
index 197667759426db5dd075d07a37e8ec985710ae39..5653623d4dbe2c2775239d9e2aa75d5ffe847452 100644 (file)
@@ -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<string>::const_iterator qit = ft.requirements.begin();
+               vector<string>::const_iterator qend = ft.requirements.end();
+               for (; qit != qend; ++qit) {
+                       lyxerr << "req:" << *qit << std::endl;
+                       ost << "\t\tRequirement " << *qit << '\n';
+               }
 
                typedef vector<Template::Option> 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:
index e7ad1521451c1997ca95d07d05cdaf0d5262c6b1..99cededd1275575c552506f499d4bc78949abe4b 100644 (file)
@@ -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<std::string> requirements;
                /// A collection of preamble snippets identified by name.
                std::vector<std::string> preambleNames;
                /// A list of options to the basic command.
index d983950d3e0c1746c5c858a366dbc8449059fbac..e985ae175ee8ad2dd82e2a8feb384acb72493391 100644 (file)
@@ -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<string>::const_iterator it  = cit->second.requirements.begin();
+       vector<string>::const_iterator end = cit->second.requirements.end();
+       for (; it != end; ++it)
+               features.require(*it);
 
        external::TemplateManager & etm = external::TemplateManager::get();
 
-       vector<string>::const_iterator it  = cit->second.preambleNames.begin();
-       vector<string>::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())