]> git.lyx.org Git - lyx.git/blobdiff - src/insets/ExternalTemplate.C
reformatting and remove using delc
[lyx.git] / src / insets / ExternalTemplate.C
index 3251d0e99b78a5de2c4f2137c5a6c4a5d0112639..960a829260f3cb7f19518a62c6ed255f1db82246 100644 (file)
 #include "ExternalTemplate.h"
 
 #include "lyxlex.h"
+#include "debug.h"
 #include "support/path.h"
 #include "support/LAssert.h"
+#include "support/filetools.h"
 
 using std::endl;
 using std::ostream;
@@ -35,6 +37,7 @@ ExternalTemplate::ExternalTemplate()
        : viewCommand("true"), editCommand("true")
 {}
 
+
 ExternalTemplate::FormatTemplate::FormatTemplate()
        : updateCommand("true") {}
 
@@ -43,7 +46,8 @@ ExternalTemplateManager::ExternalTemplateManager()
 {
        // gimp gnuchess gnuplot ical netscape tetris xpaint
        readTemplates(user_lyxdir);
-       dumpTemplates();
+       if (lyxerr.debugging())
+               dumpTemplates();
 }
 
 
@@ -97,6 +101,7 @@ void ExternalTemplate::dumpFormats(ostream & os) const
        for_each(formats.begin(), formats.end(), dumpFormat(os));
 }
 
+
 void ExternalTemplateManager::dumpTemplates() const 
 {
        for_each(templates.begin(), templates.end(), dumpTemplate(lyxerr));
@@ -124,6 +129,12 @@ ExternalTemplateManager::getTemplates() const
 }
 
 
+ExternalTemplate const & ExternalTemplateManager::getTemplateByName(string const & name)
+{
+       return templates[name];
+}
+
 void ExternalTemplateManager::readTemplates(string const & path) 
 {
        Path p(path);
@@ -138,14 +149,22 @@ void ExternalTemplateManager::readTemplates(string const & path)
                { "templateend", TM_END }
        };
 
+       string filename = LibFileSearch("", "external_templates");
+       if (filename.empty()) {
+               lyxerr << "ExternalTemplateManager::readTemplates: "
+                       "No template file" << endl;
+               return;
+       }
+
        LyXLex lex(templatetags, TM_END);
-       if (!lex.setFile("external_templates")) {
-               lyxerr << "No template file" << endl;
+       if (!lex.setFile(filename)) {
+               lyxerr << "ExternalTemplateManager::readTemplates: "
+                       "No template file" << endl;
                return;
        }
        
        while (lex.IsOK()) {
-               switch(lex.lex()) {
+               switch (lex.lex()) {
                case TM_TEMPLATE: {
                        lex.next();
                        string temp = lex.GetString();
@@ -156,8 +175,7 @@ void ExternalTemplateManager::readTemplates(string const & path)
                break;
                
                case TM_END:
-                       lyxerr << "TemplateEnd: " << lex.GetString() << endl;
-                       lyxerr << "Warning: End outside Template." << endl;
+                       lex.printError("Warning: End outside Template.");
                break;
                }
        }
@@ -236,7 +254,8 @@ void ExternalTemplate::readTemplate(LyXLex & lex)
                        return;
                        
                default:
-                       lyxerr << "Default: " << lex.GetString() << endl;
+                       lex.printError("ExternalTemplate::readTemplate: "
+                                      "Wrong tag: $$Token");
                        Assert(false);
                        break;
                }
@@ -265,7 +284,7 @@ void ExternalTemplate::FormatTemplate::readFormat(LyXLex & lex)
        pushpophelper pph(lex, formattags, FO_END);
        
        while (lex.IsOK()) {
-               switch(lex.lex()) {
+               switch (lex.lex()) {
                case FO_PRODUCT:
                        lex.next(true);
                        product = lex.GetString();
@@ -289,7 +308,8 @@ void ExternalTemplate::FormatTemplate::readFormat(LyXLex & lex)
                        break;
                        
                case FO_END:
-                       lyxerr << "FormatEnd: " << lex.GetString() << endl;
+                       if (lyxerr.debugging())
+                               lex.printError("FormatEnd");
                        return;
                }
        }