X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetcharstyle.C;h=4c6472dcbc080d91bcda94b1c252854952d911ca;hb=e28331ed63062dea10d0a21b9ec12034b4b17b9a;hp=aa8d3ea292d0166c44202fafef0577bbaa852648;hpb=de6418f37765fe452f135f96dee6d49897bff215;p=lyx.git diff --git a/src/insets/insetcharstyle.C b/src/insets/insetcharstyle.C index aa8d3ea292..4c6472dcbc 100644 --- a/src/insets/insetcharstyle.C +++ b/src/insets/insetcharstyle.C @@ -139,7 +139,7 @@ void InsetCharStyle::read(Buffer const & buf, LyXLex & lex) } -void InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const +bool InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const { LyXFont tmpfont = mi.base.font; getDrawFont(mi.base.font); @@ -157,21 +157,22 @@ void InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const int w = 0; int a = 0; int d = 0; - string s(params_.type); + // FIXME UNICODE + docstring s(from_utf8(params_.type)); if (undefined()) - // FIXME UNICODE - s = to_utf8(_("Undef: ")) + s; - docstring ds(s.begin(), s.end()); - theFontMetrics(font).rectText(ds, w, a, d); + s = _("Undef: ") + s; + theFontMetrics(font).rectText(s, w, a, d); dim.wid = max(dim.wid, w); } dim.asc += TEXT_TO_INSET_OFFSET; dim.des += TEXT_TO_INSET_OFFSET; dim.wid += 2 * TEXT_TO_INSET_OFFSET; mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET; - dim_ = dim; if (params_.show_label) - dim_.des += ascent(); + dim.des += ascent(); + bool const changed = dim_ != dim; + dim_ = dim; + return changed; } @@ -205,14 +206,13 @@ void InsetCharStyle::draw(PainterInfo & pi, int x, int y) const int w = 0; int a = 0; int d = 0; - string s(params_.type); + // FIXME UNICODE + docstring s(from_utf8(params_.type)); if (undefined()) - // FIXME UNICODE - s = to_utf8(_("Undef: ")) + s; - docstring ds(s.begin(), s.end()); - theFontMetrics(font).rectText(ds, w, a, d); + s = _("Undef: ") + s; + theFontMetrics(font).rectText(s, w, a, d); pi.pain.rectText(x + (dim_.wid - w) / 2, y + desc + a, - ds, font, LColor::none, LColor::none); + s, font, LColor::none, LColor::none); } // a visual clue when the cursor is inside the inset @@ -332,10 +332,9 @@ int InsetCharStyle::plaintext(Buffer const & buf, odocstream & os, } -int InsetCharStyle::textString(Buffer const & buf, odocstream & os, - OutputParams const & op) const +void InsetCharStyle::textString(Buffer const & buf, odocstream & os) const { - return plaintext(buf, os, op); + os << paragraphs().begin()->asString(buf, true); }