X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.C;h=43f7f7efb59cd86ba82ecf3667e9f06f0faf58ca;hb=c72b361fc98f465633f8dd8b62679f84ed83b2d5;hp=41185b825dfc5c961f915b70df0ae34b02ff01f2;hpb=fa1856440c9b323c4f1b5a9034264357c7087bb4;p=lyx.git diff --git a/src/buffer.C b/src/buffer.C index 41185b825d..43f7f7efb5 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -47,6 +47,7 @@ #include "pariterator.h" #include "sgml.h" #include "texrow.h" +#include "TocBackend.h" #include "undo.h" #include "version.h" @@ -142,7 +143,7 @@ using std::string; namespace { -int const LYX_FORMAT = 252; +int const LYX_FORMAT = 254; } // namespace anon @@ -192,13 +193,16 @@ public: /// MacroTable macros; + + /// + TocBackend toc_backend; }; Buffer::Impl::Impl(Buffer & parent, string const & file, bool readonly_) : lyx_clean(true), bak_clean(true), unnamed(false), read_only(readonly_), - filename(file), file_fully_loaded(false), - inset(params) + filename(file), file_fully_loaded(false), inset(params), + toc_backend(&parent) { inset.setAutoBreakRows(true); lyxvc.buffer(&parent); @@ -326,6 +330,18 @@ TexRow const & Buffer::texrow() const } +TocBackend & Buffer::tocBackend() +{ + return pimpl_->toc_backend; +} + + +TocBackend const & Buffer::tocBackend() const +{ + return pimpl_->toc_backend; +} + + string const Buffer::getLatexName(bool const no_path) const { string const name = changeExtension(makeLatexName(fileName()), ".tex"); @@ -538,11 +554,9 @@ void Buffer::insertStringAsLines(ParagraphList & pars, } space_inserted = true; } -/* FIXME: not needed anymore? } else if (!isPrintable(*cit)) { // Ignore unprintables continue; -*/ } else { // just insert the character par.insertChar(pos, *cit, font, params().trackChanges); @@ -817,9 +831,20 @@ bool Buffer::makeLaTeXFile(string const & fname, OutputParams const & runparams, bool output_preamble, bool output_body) { - string const encoding = (params().inputenc == "auto") ? - params().language->encoding()->iconvName() : - encodings.getEncoding(params().inputenc)->iconvName(); + string encoding; + if (params().inputenc == "auto") + encoding = params().language->encoding()->iconvName(); + else { + Encoding const * enc = encodings.getFromLaTeXName(params().inputenc); + if (enc) + encoding = enc->iconvName(); + else { + lyxerr << "Unknown inputenc value `" + << params().inputenc + << "'. Using `auto' instead." << endl; + encoding = params().language->encoding()->iconvName(); + } + } lyxerr[Debug::LATEX] << "makeLaTeXFile encoding: " << encoding << "..." << endl; @@ -1137,9 +1162,11 @@ void Buffer::validate(LaTeXFeatures & features) const features.require("dvipost"); // AMS Style is at document level - if (params().use_amsmath == BufferParams::AMS_ON + if (params().use_amsmath == BufferParams::package_on || tclass.provides(LyXTextClass::amsmath)) features.require("amsmath"); + if (params().use_esint == BufferParams::package_on) + features.require("esint"); for_each(paragraphs().begin(), paragraphs().end(), boost::bind(&Paragraph::validate, _1, boost::ref(features))); @@ -1418,6 +1445,18 @@ docstring const Buffer::B_(string const & l10n) const } +docstring const Buffer::translateLabel(docstring const & label) const +{ + if (support::isAscii(label)) + // Probably standard layout, try to translate + return B_(to_ascii(label)); + else + // This must be a user defined layout. We can not translate + // this, since gettext accepts only ascii keys. + return label; +} + + bool Buffer::isClean() const { return pimpl_->lyx_clean; @@ -1600,7 +1639,6 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to, } else getLabelList(labels); - // FIXME UNICODE if (lyx::count(labels.begin(), labels.end(), from) > 1) return;