X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRowPainter.cpp;h=a486c0e97e9223da7a0f7c9a3109a1a7ac8d5856;hb=1e519d1115f41f71c253cb9e2fbb7803e9a583a9;hp=a92461460e552dfc33a49dfa3ec0f0d3bc01230c;hpb=5fc035f99c42835da41d6eb6cf5a375382c06870;p=lyx.git diff --git a/src/RowPainter.cpp b/src/RowPainter.cpp index a92461460e..a486c0e97e 100644 --- a/src/RowPainter.cpp +++ b/src/RowPainter.cpp @@ -429,14 +429,10 @@ void RowPainter::paintLabel() const Layout const & layout = par_.layout(); FontInfo const font = labelFont(false); FontMetrics const & fm = theFontMetrics(font); - double x = x_; - - if (row_.isRTL()) - x = xo_ + row_.width() + fm.width(layout.labelsep); - else - x = x_ - fm.width(layout.labelsep) - fm.width(str); + int const x = row_.isRTL() ? row_.width() + fm.width(layout.labelsep) + : row_.left_margin - fm.width(layout.labelsep) - fm.width(str); - pi_.pain.text(int(x), yo_, str, font); + pi_.pain.text(int(xo_) + x, yo_, str, font); } @@ -476,65 +472,9 @@ void RowPainter::paintTopLevelLabel() const } -/** Check if the current paragraph is the last paragraph in a - proof environment */ -static int getEndLabel(pit_type p, Text const & text) -{ - ParagraphList const & pars = text.paragraphs(); - pit_type pit = p; - depth_type par_depth = pars[p].getDepth(); - while (pit != pit_type(pars.size())) { - Layout const & layout = pars[pit].layout(); - int const endlabeltype = layout.endlabeltype; - - if (endlabeltype != END_LABEL_NO_LABEL) { - if (p + 1 == pit_type(pars.size())) - return endlabeltype; - - depth_type const next_depth = - pars[p + 1].getDepth(); - if (par_depth > next_depth || - (par_depth == next_depth && layout != pars[p + 1].layout())) - return endlabeltype; - break; - } - if (par_depth == 0) - break; - pit = text.outerHook(pit); - if (pit != pit_type(pars.size())) - par_depth = pars[pit].getDepth(); - } - return END_LABEL_NO_LABEL; -} - - void RowPainter::paintLast() const { - int const endlabel = getEndLabel(row_.pit(), text_); - - // paint imaginary end-of-paragraph character - - Change const & change = par_.lookupChange(par_.size()); - if (change.changed()) { - FontMetrics const & fm = - theFontMetrics(pi_.base.bv->buffer().params().getFont()); - int const length = fm.maxAscent() / 2; - Color col = change.color(); - - pi_.pain.line(int(x_) + 1, yo_ + 2, int(x_) + 1, yo_ + 2 - length, col, - Painter::line_solid, 3); - - if (change.deleted()) { - pi_.pain.line(int(x_) + 1 - length, yo_ + 2, int(x_) + 1 + length, - yo_ + 2, col, Painter::line_solid, 3); - } else { - pi_.pain.line(int(x_) + 1 - length, yo_ + 2, int(x_) + 1, - yo_ + 2, col, Painter::line_solid, 3); - } - } - - // draw an endlabel - + int const endlabel = text_.getEndLabel(row_.pit()); switch (endlabel) { case END_LABEL_BOX: case END_LABEL_FILLED_BOX: { @@ -557,9 +497,9 @@ void RowPainter::paintLast() const } if (endlabel == END_LABEL_BOX) - pi_.pain.rectangle(xo_ + x, y, size, size, font.realColor()); + pi_.pain.rectangle(int(xo_) + x, y, size, size, font.realColor()); else - pi_.pain.fillRectangle(xo_ + x, y, size, size, font.realColor()); + pi_.pain.fillRectangle(int(xo_) + x, y, size, size, font.realColor()); break; } @@ -580,10 +520,7 @@ void RowPainter::paintLast() const void RowPainter::paintOnlyInsets() { - Row::const_iterator cit = row_.begin(); - Row::const_iterator const & end = row_.end(); - for ( ; cit != end ; ++cit) { - Row::Element const & e = *cit; + for (Row::Element const & e : row_) { if (e.type == Row::INSET) { paintInset(e); // The markings of foreign languages @@ -601,11 +538,7 @@ void RowPainter::paintOnlyInsets() void RowPainter::paintText() { - Row::const_iterator cit = row_.begin(); - Row::const_iterator const & end = row_.end(); - for ( ; cit != end ; ++cit) { - Row::Element const & e = *cit; - + for (Row::Element const & e : row_) { switch (e.type) { case Row::STRING: case Row::VIRTUAL: