X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBufferParams.cpp;h=9302a35c294e43881eeebd47bbbf8816bbb004f9;hb=700af7e7011f102d92222744791638ff2db18f94;hp=22da6812ee91c0e81398a33bda033b7a7c7692fa;hpb=932998494ba1e5e28bd3dc347c9987dffc33181a;p=lyx.git diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp index 22da6812ee..9302a35c29 100644 --- a/src/BufferParams.cpp +++ b/src/BufferParams.cpp @@ -95,13 +95,14 @@ namespace lyx { namespace { // Paragraph separation -typedef Translator ParSepTranslator; +typedef Translator 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 QuotesLangTranslator; +typedef Translator 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 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; } @@ -317,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 */ @@ -349,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]; @@ -357,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); @@ -468,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(); @@ -478,8 +476,10 @@ string const BufferParams::readToken(Lexer & lex, string const & token, // NOTE: in this case, the textclass (.cls file) is assumed to be available. string tcp; LayoutFileList & bcl = LayoutFileList::get(); - if (!filepath.empty()) - tcp = bcl.addLayoutFile(classname, filepath.absFilename()); + 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)) { @@ -506,6 +506,8 @@ string const BufferParams::readToken(Lexer & lex, string const & token, } else if (token == "\\begin_preamble") { readPreamble(lex); + } else if (token == "\\begin_local_layout") { + readLocalLayout(lex); } else if (token == "\\begin_modules") { readModules(lex); } else if (token == "\\options") { @@ -722,6 +724,15 @@ void BufferParams::writeFile(ostream & os) const os << "\\end_modules" << '\n'; } + // local layout information + if (!local_layout.empty()) { + // remove '\n' from the end + string const tmplocal = rtrim(local_layout, "\n"); + os << "\\begin_local_layout\n" + << tmplocal + << "\n\\end_local_layout\n"; + } + // then the text parameters if (language != ignore_language) os << "\\language " << language->lang() << '\n'; @@ -1501,6 +1512,12 @@ void BufferParams::makeDocumentClass() frontend::Alert::warning(_("Read Error"), msg); } } + if (!local_layout.empty()) { + if (!doc_class_->read(local_layout, TextClass::MODULE)) { + docstring const msg = _("Error reading internal layout information"); + frontend::Alert::warning(_("Read Error"), msg); + } + } } @@ -1555,6 +1572,16 @@ void BufferParams::readPreamble(Lexer & lex) } +void BufferParams::readLocalLayout(Lexer & lex) +{ + if (lex.getString() != "\\begin_local_layout") + lyxerr << "Error (BufferParams::readLocalLayout):" + "consistency check failed." << endl; + + local_layout = lex.getLongString("\\end_local_layout"); +} + + void BufferParams::readLanguage(Lexer & lex) { if (!lex.next()) return; @@ -1648,7 +1675,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) @@ -1740,7 +1767,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}") @@ -1959,7 +1986,7 @@ string const BufferParams::loadFonts(string const & rm, else if (tt == "courier" ) os << "\\usepackage{" << tt << "}\n"; // Computer Modern, Latin Modern, CM Bright - else if (tt != "default") + else if (tt != "default") os << "\\renewcommand{\\ttdefault}{" << tt << "}\n"; return os.str(); @@ -1969,18 +1996,17 @@ string const BufferParams::loadFonts(string const & rm, Encoding const & BufferParams::encoding() const { if (inputenc == "auto" || inputenc == "default") - return *(language->encoding()); - Encoding const * const enc = - encodings.getFromLaTeXName(inputenc); + return *language->encoding(); + Encoding const * const enc = encodings.fromLaTeXName(inputenc); if (enc) return *enc; - lyxerr << "Unknown inputenc value `" << inputenc - << "'. Using `auto' instead." << endl; - return *(language->encoding()); + LYXERR0("Unknown inputenc value `" << inputenc + << "'. Using `auto' instead."); + return *language->encoding(); } -biblio::CiteEngine BufferParams::getEngine() const +biblio::CiteEngine BufferParams::citeEngine() const { // FIXME the class should provide the numerical/ // authoryear choice @@ -1991,7 +2017,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; }