From 858e197b7c047fd0f6e26ffcef17751470a951e4 Mon Sep 17 00:00:00 2001 From: Angus Leeming Date: Tue, 23 Sep 2003 17:04:25 +0000 Subject: [PATCH] Enable multiple preamble snippets to be accessed by each format. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@7814 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/ChangeLog | 5 +++++ src/frontends/xforms/FormExternal.C | 4 +++- src/insets/ChangeLog | 8 ++++++++ src/insets/ExternalTemplate.C | 17 +++++++++++++---- src/insets/ExternalTemplate.h | 5 +++-- src/insets/insetexternal.C | 13 ++++++++++--- 6 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index bd4a9213b5..718f2911aa 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,8 @@ +2003-09-23 Angus Leeming + + * FormExternal.C (updateComboChange): use formatted to ensure that the + help text fits in the browser. + 2003-09-21 Lars Gullik Bjønnes * XFormsToolbar.C: adjust diff --git a/src/frontends/xforms/FormExternal.C b/src/frontends/xforms/FormExternal.C index 673b448239..0303447953 100644 --- a/src/frontends/xforms/FormExternal.C +++ b/src/frontends/xforms/FormExternal.C @@ -183,7 +183,9 @@ void FormExternal::updateComboChange() ExternalTemplate templ = controller().getTemplate(choice); // Update the help text + string const txt = formatted(templ.helpText, + dialog_->browser_helptext->w - 20); fl_clear_browser(dialog_->browser_helptext); - fl_addto_browser(dialog_->browser_helptext, templ.helpText.c_str()); + fl_addto_browser(dialog_->browser_helptext, txt.c_str()); fl_set_browser_topline(dialog_->browser_helptext, 0); } diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 9137244341..4a29d233e0 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,11 @@ +2003-09-23 Angus Leeming + + * ExternalTemplate.[Ch]: can have multiple preamble snippets if we store them + in a vector, preambleNames. + + * insetexternal.C (validate): loop over all preambleNames and call + LaTeXFeatures::addExternalPreamble with each. + 2003-09-22 Martin Vermeer * insetbranch.C: bug fix in branches diff --git a/src/insets/ExternalTemplate.C b/src/insets/ExternalTemplate.C index 7fe3f5b080..7cd8442d02 100644 --- a/src/insets/ExternalTemplate.C +++ b/src/insets/ExternalTemplate.C @@ -30,6 +30,7 @@ using std::endl; using std::for_each; using std::ostream; +using std::vector; // We have to have dummy default commands for security reasons! @@ -111,9 +112,17 @@ public: << "\t\tProduct " << ft.product << '\n' << "\t\tUpdateFormat " << ft.updateFormat << '\n' << "\t\tUpdateResult " << ft.updateResult << '\n' - << "\t\tRequirement " << ft.requirement << '\n' - << "\t\tPreamble " << ft.preambleName << '\n' - << "\tFormatEnd\n"; + << "\t\tRequirement " << ft.requirement << '\n'; + + if (!ft.preambleNames.empty()) { + vector::const_iterator it = ft.preambleNames.begin(); + vector::const_iterator end = ft.preambleNames.end(); + for (; it != end; ++it) { + ost << "\t\tPreamble " << *it << '\n'; + } + } + + ost << "\tFormatEnd\n"; } private: ostream & ost; @@ -361,7 +370,7 @@ void ExternalTemplate::FormatTemplate::readFormat(LyXLex & lex) case FO_PREAMBLE: lex.next(true); - preambleName = lex.getString(); + preambleNames.push_back(lex.getString()); break; case FO_END: diff --git a/src/insets/ExternalTemplate.h b/src/insets/ExternalTemplate.h index 5b6ddf0529..094ab3797c 100644 --- a/src/insets/ExternalTemplate.h +++ b/src/insets/ExternalTemplate.h @@ -17,6 +17,7 @@ #include #include "support/std_string.h" #include +#include class LyXLex; @@ -48,8 +49,8 @@ struct ExternalTemplate { string updateFormat; /// What features does this external inset require? string requirement; - /// Identify the preamble snippet using \c preambleName. - string preambleName; + /// A collection of preamble snippets identified by name. + std::vector preambleNames; /// void readFormat(LyXLex &); /// This constructor has to default a command for safety reasons! diff --git a/src/insets/insetexternal.C b/src/insets/insetexternal.C index 377080b74e..80a7fdc38b 100644 --- a/src/insets/insetexternal.C +++ b/src/insets/insetexternal.C @@ -43,10 +43,12 @@ namespace support = lyx::support; using std::endl; + using std::auto_ptr; using std::istringstream; using std::ostream; using std::ostringstream; +using std::vector; namespace lyx { @@ -459,9 +461,14 @@ void InsetExternal::validate(LaTeXFeatures & features) const features.require(cit->second.requirement); ExternalTemplateManager & etm = ExternalTemplateManager::get(); - string const preamble = etm.getPreambleDefByName(cit->second.preambleName); - if (!preamble.empty()) - features.addExternalPreamble(preamble); + + vector::const_iterator it = cit->second.preambleNames.begin(); + vector::const_iterator end = cit->second.preambleNames.end(); + for (; it != end; ++it) { + string const preamble = etm.getPreambleDefByName(*it); + if (!preamble.empty()) + features.addExternalPreamble(preamble); + } } -- 2.39.2