X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FExternalTemplate.cpp;h=6bd02ac47a603b84803a2377c1a95b5744a9bc10;hb=3588f2f69675df8dbf829800b0ed6e4a455c68b4;hp=7b47955aa2597c4599d8c43d01c57a590bd23fec;hpb=c88e7a7ef66a880b5fb6166ff9151001269bc7cd;p=lyx.git diff --git a/src/insets/ExternalTemplate.cpp b/src/insets/ExternalTemplate.cpp index 7b47955aa2..6bd02ac47a 100644 --- a/src/insets/ExternalTemplate.cpp +++ b/src/insets/ExternalTemplate.cpp @@ -20,6 +20,7 @@ #include "support/lstrings.h" #include "support/Package.h" #include "support/Path.h" +#include "support/Translator.h" #include @@ -50,7 +51,7 @@ static TransformIDTranslator const & transformIDTranslator() // We have to have dummy default commands for security reasons! Template::Template() - : inputFormat("*") + : inputFormat("*"), automaticProduction(false), preview_mode(PREVIEW_OFF) {} @@ -102,8 +103,19 @@ public: << "\tHelpTextEnd\n" << "\tInputFormat " << et.inputFormat << '\n' << "\tFileFilter " << et.fileRegExp << '\n' - << "\tAutomaticProduction " << et.automaticProduction << '\n'; - + << "\tAutomaticProduction " << et.automaticProduction << '\n' + << "\tPreview "; + switch (et.preview_mode) { + case PREVIEW_OFF: + os_ << "Off\n"; + break; + case PREVIEW_GRAPHICS: + os_ << "Graphics\n"; + break; + case PREVIEW_INSTANT: + os_ << "InstantPreview\n"; + break; + } typedef vector IDs; IDs::const_iterator it = et.transformIds.begin(); IDs::const_iterator end = et.transformIds.end(); @@ -202,8 +214,7 @@ TemplateManager & TemplateManager::get() } -TemplateManager::Templates const & -TemplateManager::getTemplates() const +TemplateManager::Templates const & TemplateManager::getTemplates() const { return templates; } @@ -292,23 +303,6 @@ void TemplateManager::readTemplates(FileName const & path) } -namespace { - -void add(vector & ids, string const & name) -{ - TransformID id = transformIDTranslator().find(name); - if (int(id) == -1) { - lyxerr << "external::Template::readTemplate\n" - << "Transform " << name << " is not recognized" - << endl; - } else { - ids.push_back(id); - } -} - -} // namespace anon - - void Template::readTemplate(Lexer & lex) { enum { @@ -317,6 +311,7 @@ void Template::readTemplate(Lexer & lex) TO_INPUTFORMAT, TO_FILTER, TO_AUTOMATIC, + TO_PREVIEW, TO_TRANSFORM, TO_FORMAT, TO_END @@ -329,12 +324,15 @@ void Template::readTemplate(Lexer & lex) { "guiname", TO_GUINAME }, { "helptext", TO_HELPTEXT }, { "inputformat", TO_INPUTFORMAT }, + { "preview", TO_PREVIEW }, { "templateend", TO_END }, { "transform", TO_TRANSFORM } }; PushPopHelper pph(lex, templateoptiontags); + lex.setContext("Template::readTemplate"); + string token; while (lex.isOK()) { switch (lex.lex()) { case TO_GUINAME: @@ -361,11 +359,26 @@ void Template::readTemplate(Lexer & lex) automaticProduction = lex.getBool(); break; - case TO_TRANSFORM: - lex.next(true); - add(transformIds, lex.getString()); + case TO_PREVIEW: + lex >> token; + if (token == "InstantPreview") + preview_mode = PREVIEW_INSTANT; + else if (token == "Graphics") + preview_mode = PREVIEW_GRAPHICS; + else + preview_mode = PREVIEW_OFF; break; + case TO_TRANSFORM: { + lex >> token; + TransformID id = transformIDTranslator().find(token); + if (int(id) == -1) + LYXERR0("Transform " << token << " is not recognized"); + else + transformIds.push_back(id); + break; + } + case TO_FORMAT: lex.next(true); formats[lex.getString()].readFormat(lex); @@ -377,7 +390,7 @@ void Template::readTemplate(Lexer & lex) default: lex.printError("external::Template::readTemplate: " "Wrong tag: $$Token"); - BOOST_ASSERT(false); + LASSERT(false, /**/); break; } }