X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Frowpainter.cpp;h=cfa7f516d4c462e4eb1b47f29ac201ad0dc5a9b5;hb=4db3e641ed6765e005343010cb90ee8af26f8f99;hp=5810fd66e5c4726ceea15c59fa20bf6094936b98;hpb=6b2232a29c682d8e62d1d2b963bb1a70bee4330b;p=lyx.git diff --git a/src/rowpainter.cpp b/src/rowpainter.cpp index 5810fd66e5..cfa7f516d4 100644 --- a/src/rowpainter.cpp +++ b/src/rowpainter.cpp @@ -91,8 +91,8 @@ RowPainter::RowPainter(PainterInfo & pi, //lyxerr << "RowPainter: x: " << x_ << " xo: " << xo_ << " yo: " << yo_ << endl; //row_.dump(); - LASSERT(pit >= 0, /**/); - LASSERT(pit < int(text.paragraphs().size()), /**/); + LBUFERR(pit >= 0); + LBUFERR(pit < int(text.paragraphs().size())); } @@ -586,20 +586,14 @@ void RowPainter::paintFirst() } } - bool const is_seq = text_.isFirstInSequence(pit_); + bool const is_first = + text_.isFirstInSequence(pit_) || !layout.isParagraphGroup(); //lyxerr << "paintFirst: " << par_.id() << " is_seq: " << is_seq << endl; - if (layout.labeltype >= LABEL_STATIC - && (layout.labeltype != LABEL_STATIC - || layout.latextype != LATEX_ENVIRONMENT - || is_seq)) { + if (layout.labelIsInline() + && (layout.labeltype != LABEL_STATIC || is_first)) { paintLabel(); - } else if (is_seq - && (layout.labeltype == LABEL_TOP_ENVIRONMENT - || layout.labeltype == LABEL_BIBLIO - || layout.labeltype == LABEL_CENTERED_TOP_ENVIRONMENT)) { - // the labels at the top of an environment. - // More or less for bibliography + } else if (is_first && layout.labelIsAbove()) { paintTopLevelLabel(); } } @@ -611,48 +605,21 @@ void RowPainter::paintLabel() if (str.empty()) return; - BufferParams const & bparams = pi_.base.bv->buffer().params(); bool const is_rtl = text_.isRTL(par_); Layout const & layout = par_.layout(); - ParagraphParameters const & pparams = par_.params(); FontInfo const font = labelFont(); FontMetrics const & fm = theFontMetrics(font); - double x = x_; - // this is special code for the chapter layout. This is - // printed in an extra row and has a pagebreak at - // the top. - if (layout.counter == "chapter") { - double spacing_val = 1.0; - if (!pparams.spacing().isDefault()) { - spacing_val = pparams.spacing().getValue(); - } else { - spacing_val = bparams.spacing().getValue(); - } - - int const labeladdon = int(fm.maxHeight() * layout.spacing.getValue() * spacing_val); - - int const maxdesc = int(fm.maxDescent() * layout.spacing.getValue() * spacing_val) - + int(layout.parsep) * defaultRowHeight(); - - if (is_rtl) { - x = width_ - leftMargin() - - fm.width(str); - } - - pi_.pain.text(int(x), yo_ - maxdesc - labeladdon, str, font); + if (is_rtl) { + x = width_ - leftMargin() + + fm.width(layout.labelsep); } else { - if (is_rtl) { - x = width_ - leftMargin() - + fm.width(layout.labelsep); - } else { - x = x_ - fm.width(layout.labelsep) - - fm.width(str); - } - - pi_.pain.text(int(x), yo_, str, font); + x = x_ - fm.width(layout.labelsep) + - fm.width(str); } + + pi_.pain.text(int(x), yo_, str, font); } @@ -683,7 +650,7 @@ void RowPainter::paintTopLevelLabel() + (layout.labelbottomsep * defaultRowHeight())); double x = x_; - if (layout.labeltype == LABEL_CENTERED_TOP_ENVIRONMENT) { + if (layout.labeltype == LABEL_CENTERED) { if (is_rtl) x = leftMargin(); x += (width_ - text_metrics_.rightMargin(pm_) - leftMargin()) / 2;