X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfont.C;h=22594630d3f3b1bac6c4b568ead5e4be5b6b4bd8;hb=69cf3b62043861ccad5f8ad7ffb4981fe50b078d;hp=362253b678e817bef473543bb955557cccea2248;hpb=57e89ae2bfa4c0cee3d6d8feee11651b3d37d54d;p=lyx.git diff --git a/src/lyxfont.C b/src/lyxfont.C index 362253b678..22594630d3 100644 --- a/src/lyxfont.C +++ b/src/lyxfont.C @@ -12,11 +12,6 @@ #include #include -#ifdef __GNUG__ -#pragma implementation -#endif - - #include "gettext.h" #include "lyxfont.h" #include "debug.h" @@ -26,6 +21,8 @@ #include "support/lstrings.h" #include "bufferparams.h" // stateText +#include "BoostFormat.h" + using std::ostream; using std::endl; @@ -40,7 +37,7 @@ using std::strlen; namespace { char const * GUIFamilyNames[LyXFont::NUM_FAMILIES + 2 /* default & error */] = -{ N_("Roman"), N_("Sans serif"), N_("Typewriter"), N_("Symbol"), +{ N_("Roman"), N_("Sans Serif"), N_("Typewriter"), N_("Symbol"), "cmr", "cmsy", "cmm", "cmex", "msa", "msb", "eufrak", "wasy", N_("Inherit"), N_("Ignore") }; @@ -159,11 +156,7 @@ LyXFont::LyXFont() LyXFont::LyXFont(LyXFont::FONT_INIT1) -#ifndef INHERIT_LANGUAGE : bits(inherit), lang(default_language) -#else - : bits(inherit), lang(inherit_language) -#endif {} @@ -434,11 +427,7 @@ void LyXFont::update(LyXFont const & newfont, if (language() == document_language) setLanguage(default_language); else -#ifndef INHERIT_LANGUAGE setLanguage(document_language); -#else - setLanguage(inherit_language); -#endif else if (newfont.language() != ignore_language) setLanguage(newfont.language()); @@ -468,32 +457,12 @@ void LyXFont::reduce(LyXFont const & tmplt) setNoun(INHERIT); if (color() == tmplt.color()) setColor(LColor::inherit); -#ifdef INHERIT_LANGUAGE - if (language() == tmplt.language()) - setLanguage(inherit_language); -#endif } /// Realize font from a template -#ifndef INHERIT_LANGUAGE LyXFont & LyXFont::realize(LyXFont const & tmplt) -#else -LyXFont & LyXFont::realize(LyXFont const & tmplt, Language const * deflang) -#endif { -#ifdef INHERIT_LANGUAGE - if (language() == inherit_language) { - if (tmplt.language() == inherit_language || - tmplt.language() == ignore_language || - tmplt.language() == default_language) - { - setLanguage(deflang); - } else { - setLanguage(tmplt.language()); - } - } -#endif if (bits == inherit) { bits = tmplt.bits; return *this; @@ -534,9 +503,6 @@ bool LyXFont::resolved() const shape() != INHERIT_SHAPE && size() != INHERIT_SIZE && emph() != INHERIT && underbar() != INHERIT && noun() != INHERIT && -#ifdef INHERIT_LANGUAGE - language() != inherit_language && -#endif color() != LColor::inherit); } @@ -555,24 +521,50 @@ string const LyXFont::stateText(BufferParams * params) const ost << _(GUISizeNames[size()]) << ", "; if (color() != LColor::inherit) ost << lcolor.getGUIName(color()) << ", "; - if (emph() != INHERIT) - ost << _("Emphasis ") - << _(GUIMiscNames[emph()]) << ", "; - if (underbar() != INHERIT) - ost << _("Underline ") - << _(GUIMiscNames[underbar()]) << ", "; - if (noun() != INHERIT) + if (emph() != INHERIT) { +#if USE_BOOST_FORMAT + ost << boost::format(_("Emphasis %1$s, ")) + % _(GUIMiscNames[emph()]); +#else + ost << _("Emphasis ") << _(GUIMiscNames[emph()]) << ", "; +#endif + } + if (underbar() != INHERIT) { +#if USE_BOOST_FORMAT + ost << boost::format(_("Underline %1$s, ")) + % _(GUIMiscNames[underbar()]); +#else + ost << _("Underline ") << _(GUIMiscNames[underbar()]) << ", "; +#endif + } + if (noun() != INHERIT) { +#if USE_BOOST_FORMAT + ost << boost::format(_("Noun %1$s, ")) + % _(GUIMiscNames[noun()]); +#else ost << _("Noun ") << _(GUIMiscNames[noun()]) << ", "; +#endif + } if (bits == inherit) ost << _("Default") << ", "; - if (!params || (language() != params->language)) + if (!params || (language() != params->language)) { +#if USE_BOOST_FORMAT + ost << boost::format(_("Language: %1$s, ")) + % _(language()->display()); +#else ost << _("Language: ") << _(language()->display()) << ", "; - if (number() != OFF) +#endif + } + if (number() != OFF) { +#if USE_BOOST_FORMAT + ost << boost::format(_(" Number %1$s")) + % _(GUIMiscNames[number()]); +#else ost << _(" Number ") << _(GUIMiscNames[number()]); +#endif + } - string buf(ost.str().c_str()); - buf = strip(buf, ' '); - buf = strip(buf, ','); + string const buf = rtrim(STRCONV(ost.str()), ", "); return buf; } @@ -733,9 +725,6 @@ LyXFont & LyXFont::lyxRead(LyXLex & lex) /// Writes the changes from this font to orgfont in .lyx format in file void LyXFont::lyxWriteChanges(LyXFont const & orgfont, -#ifdef INHERIT_LANGUAGE - Language const * doclang, -#endif ostream & os) const { os << "\n"; @@ -785,13 +774,7 @@ void LyXFont::lyxWriteChanges(LyXFont const & orgfont, os << "\\color " << col_str << "\n"; } if (orgfont.language() != language()) { -#ifndef INHERIT_LANGUAGE if (language()) -#else - if (language() == inherit_language) - os << "\\lang " << doclang->lang() << "\n"; - else if (language()) -#endif os << "\\lang " << language()->lang() << "\n"; else os << "\\lang unknown\n"; @@ -903,12 +886,11 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, int count = 0; bool env = false; - LyXFont f = *this; // why do you need this? - f.reduce(base); // why isn't this just "reduce(base);" (Lgb) - // Because this function is const. Everything breaks if this - // method changes the font it represents. There is no speed penalty - // by using the temporary. (Asger) - + // reduce the current font to changes against the base + // font (of the layout). We use a temporary for this to + // avoid changing this font instance, as that would break + LyXFont f = *this; + f.reduce(base); if (f.family() != INHERIT_FAMILY) { os << '}'; @@ -960,7 +942,7 @@ int LyXFont::latexWriteEndChanges(ostream & os, LyXFont const & base, } if (language() != base.language() && language() != next.language()) { - os << "}"; + os << '}'; ++count; }