]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
Cosmetics.
[lyx.git] / src / BufferParams.cpp
index 2fba2fb213f675d7ab0c8d3f5388dd21ef071415..3f14e3a7b0f0c754c7453c3a32772da11523aff9 100644 (file)
@@ -18,7 +18,7 @@
 #include "BufferParams.h"
 
 #include "Author.h"
-#include "BaseClassList.h"
+#include "LayoutFile.h"
 #include "BranchList.h"
 #include "buffer_funcs.h"
 #include "Bullet.h"
@@ -95,13 +95,14 @@ namespace lyx {
 namespace {
 
 // Paragraph separation
-typedef Translator<string, BufferParams::PARSEP> ParSepTranslator;
+typedef Translator<string, BufferParams::ParagraphSeparation> ParSepTranslator;
 
 
 ParSepTranslator const init_parseptranslator()
 {
-       ParSepTranslator translator(string_paragraph_separation[0], BufferParams::PARSEP_INDENT);
-       translator.addPair(string_paragraph_separation[1], BufferParams::PARSEP_SKIP);
+       ParSepTranslator translator
+               (string_paragraph_separation[0], BufferParams::ParagraphIndentSeparation);
+       translator.addPair(string_paragraph_separation[1], BufferParams::ParagraphSkipSeparation);
        return translator;
 }
 
@@ -114,17 +115,18 @@ ParSepTranslator const & parseptranslator()
 
 
 // Quotes language
-typedef Translator<string, InsetQuotes::quote_language> QuotesLangTranslator;
+typedef Translator<string, InsetQuotes::QuoteLanguage> QuotesLangTranslator;
 
 
 QuotesLangTranslator const init_quoteslangtranslator()
 {
-       QuotesLangTranslator translator(string_quotes_language[0], InsetQuotes::EnglishQ);
-       translator.addPair(string_quotes_language[1], InsetQuotes::SwedishQ);
-       translator.addPair(string_quotes_language[2], InsetQuotes::GermanQ);
-       translator.addPair(string_quotes_language[3], InsetQuotes::PolishQ);
-       translator.addPair(string_quotes_language[4], InsetQuotes::FrenchQ);
-       translator.addPair(string_quotes_language[5], InsetQuotes::DanishQ);
+       QuotesLangTranslator translator
+               (string_quotes_language[0], InsetQuotes::EnglishQuotes);
+       translator.addPair(string_quotes_language[1], InsetQuotes::SwedishQuotes);
+       translator.addPair(string_quotes_language[2], InsetQuotes::GermanQuotes);
+       translator.addPair(string_quotes_language[3], InsetQuotes::PolishQuotes);
+       translator.addPair(string_quotes_language[4], InsetQuotes::FrenchQuotes);
+       translator.addPair(string_quotes_language[5], InsetQuotes::DanishQuotes);
        return translator;
 }
 
@@ -140,7 +142,7 @@ QuotesLangTranslator const & quoteslangtranslator()
 typedef Translator<string, PAPER_SIZE> PaperSizeTranslator;
 
 
-PaperSizeTranslator const init_papersizetranslator()
+static PaperSizeTranslator initPaperSizeTranslator()
 {
        PaperSizeTranslator translator(string_papersize[0], PAPER_DEFAULT);
        translator.addPair(string_papersize[1], PAPER_CUSTOM);
@@ -159,7 +161,7 @@ PaperSizeTranslator const init_papersizetranslator()
 
 PaperSizeTranslator const & papersizetranslator()
 {
-       static PaperSizeTranslator translator = init_papersizetranslator();
+       static PaperSizeTranslator translator = initPaperSizeTranslator();
        return translator;
 }
 
@@ -275,6 +277,7 @@ public:
 
        AuthorList authorlist;
        BranchList branchlist;
+       vector<string> extraEmbeddedFiles;
        Bullet temp_bullets[4];
        Bullet user_defined_bullets[4];
        Spacing spacing;
@@ -316,8 +319,8 @@ BufferParams::BufferParams()
 {
        setBaseClass(defaultBaseclass());
        makeDocumentClass();
-       paragraph_separation = PARSEP_INDENT;
-       quotes_language = InsetQuotes::EnglishQ;
+       paragraph_separation = ParagraphIndentSeparation;
+       quotes_language = InsetQuotes::EnglishQuotes;
        fontsize = "default";
 
        /*  PaperLayout */
@@ -348,7 +351,7 @@ BufferParams::BufferParams()
        listings_params = string();
        pagestyle = "default";
        compressed = false;
-       embedded = false;
+       embedded = lyxrc.use_bundled_format;
        for (int iter = 0; iter < 4; ++iter) {
                user_defined_bullet(iter) = ITEMIZE_DEFAULTS[iter];
                temp_bullet(iter) = ITEMIZE_DEFAULTS[iter];
@@ -356,11 +359,7 @@ BufferParams::BufferParams()
 }
 
 
-BufferParams::~BufferParams()
-{}
-
-
-docstring const BufferParams::B_(string const & l10n) const
+docstring BufferParams::B_(string const & l10n) const
 {
        BOOST_ASSERT(language);
        return getMessages(language->code()).get(l10n);
@@ -379,6 +378,18 @@ AuthorList const & BufferParams::authors() const
 }
 
 
+vector<string> & BufferParams::extraEmbeddedFiles()
+{
+       return pimpl_->extraEmbeddedFiles;
+}
+
+
+vector<string> const & BufferParams::extraEmbeddedFiles() const
+{
+       return pimpl_->extraEmbeddedFiles;
+}
+
+
 BranchList & BufferParams::branchlist()
 {
        return pimpl_->branchlist;
@@ -455,8 +466,8 @@ void BufferParams::setDefSkip(VSpace const & vs)
 }
 
 
-string const BufferParams::readToken(Lexer & lex, string const & token,
-       FileName const & filepath)
+string BufferParams::readToken(Lexer & lex, string const & token,
+       FileName const & filepath, FileName const & temppath)
 {
        if (token == "\\textclass") {
                lex.next();
@@ -464,9 +475,11 @@ string const BufferParams::readToken(Lexer & lex, string const & token,
                // if there exists a local layout file, ignore the system one
                // NOTE: in this case, the textclass (.cls file) is assumed to be available.
                string tcp;
-               BaseClassList & bcl = BaseClassList::get();
-               if (!filepath.empty())
-                       tcp = bcl.addLayoutFile(classname, filepath.absFilename());
+               LayoutFileList & bcl = LayoutFileList::get();
+               if (!temppath.empty())
+                       tcp = bcl.addLayoutFile(classname, temppath.absFilename(), LayoutFileList::Embedded);
+               if (tcp.empty() && !filepath.empty())
+                       tcp = bcl.addLayoutFile(classname, filepath.absFilename(), LayoutFileList::Local);
                if (!tcp.empty())
                        setBaseClass(tcp);
                else if (bcl.haveClass(classname)) {
@@ -658,6 +671,16 @@ string const BufferParams::readToken(Lexer & lex, string const & token,
                                toktmp << endl;
                        return toktmp;
                }
+       } else if (token == "\\extra_embedded_files") {
+               extraEmbeddedFiles().clear();
+               string par;
+               lex >> par;
+               string tmp;
+               par = split(par, tmp, ',');
+               while (!tmp.empty()) {
+                       extraEmbeddedFiles().push_back(tmp);
+                       par = split(par, tmp, ',');
+               }
        } else {
                lyxerr << "BufferParams::readToken(): Unknown token: " << 
                        token << endl;
@@ -811,6 +834,19 @@ void BufferParams::writeFile(ostream & os) const
                else
                        os << "\\author " << Author() << "\n";
        }
+
+       vector<string>::const_iterator e_it = extraEmbeddedFiles().begin();
+       vector<string>::const_iterator e_end = extraEmbeddedFiles().end();
+       os << "\\extra_embedded_files \"";
+       bool first = true;
+       for (; e_it != e_end; ++e_it) {
+               if (!first)
+                       os << ",";
+               else
+                       first = false;
+               os << *e_it;
+       }
+       os << "\"\n";
 }
 
 
@@ -1386,22 +1422,18 @@ void BufferParams::setDocumentClass(DocumentClass const * const tc) {
 
 bool BufferParams::setBaseClass(string const & classname)
 {
-       string localtc = classname;
-       BaseClassList const & bcl = BaseClassList::get();
-       if (!bcl.haveClass(localtc)) {
-               // OK, let's try again assuming it's a local file
-               localtc = BaseClassList::localPrefix + localtc;
-               if (!bcl.haveClass(localtc)) {
-                       docstring s = 
-                               bformat(_("The document class %1$s could not be found."),
-                               from_utf8(classname));
-                       frontend::Alert::error(_("Class not found"), s);
-                       return false;
-               }
+       LYXERR(Debug::TCLASS, "setBaseClass: " << classname);
+       LayoutFileList const & bcl = LayoutFileList::get();
+       if (!bcl.haveClass(classname)) {
+               docstring s = 
+                       bformat(_("The document class %1$s could not be found."),
+                       from_utf8(classname));
+               frontend::Alert::error(_("Class not found"), s);
+               return false;
        }
 
-       if (bcl[localtc].load()) {
-               pimpl_->baseClass_ = localtc;
+       if (bcl[classname].load()) {
+               pimpl_->baseClass_ = classname;
                return true;
        }
        
@@ -1415,8 +1447,8 @@ bool BufferParams::setBaseClass(string const & classname)
 
 LayoutFile const * BufferParams::baseClass() const
 {
-       if (BaseClassList::get().haveClass(pimpl_->baseClass_))
-               return &(BaseClassList::get()[pimpl_->baseClass_]);
+       if (LayoutFileList::get().haveClass(pimpl_->baseClass_))
+               return &(LayoutFileList::get()[pimpl_->baseClass_]);
        else 
                return 0;
 }
@@ -1616,7 +1648,7 @@ void BufferParams::readModules(Lexer & lex)
 }
 
 
-string const BufferParams::paperSizeName(Papersize_Purpose const & purpose) const
+string BufferParams::paperSizeName(PapersizePurpose purpose) const
 {
        char real_papersize = papersize;
        if (real_papersize == PAPER_DEFAULT)
@@ -1708,7 +1740,7 @@ string const BufferParams::dvips_options() const
 }
 
 
-string const BufferParams::babelCall(string const & lang_opts) const
+string BufferParams::babelCall(string const & lang_opts) const
 {
        string lang_pack = lyxrc.language_package;
        if (lang_pack != "\\usepackage{babel}")
@@ -1948,7 +1980,7 @@ Encoding const & BufferParams::encoding() const
 }
 
 
-biblio::CiteEngine BufferParams::getEngine() const
+biblio::CiteEngine BufferParams::citeEngine() const
 {
        // FIXME the class should provide the numerical/
        // authoryear choice
@@ -1959,7 +1991,7 @@ biblio::CiteEngine BufferParams::getEngine() const
 }
 
 
-void BufferParams::setCiteEngine(biblio::CiteEngine const cite_engine)
+void BufferParams::setCiteEngine(biblio::CiteEngine cite_engine)
 {
        cite_engine_ = cite_engine;
 }