diff options
author | Waqar Ahmed <waqar.ahmed@kdab.com> | 2021-08-29 22:33:53 +0500 |
---|---|---|
committer | Waqar Ahmed <waqar.17a@gmail.com> | 2021-09-16 20:30:04 +0500 |
commit | b21403992edc687fd6b2f24b2026172c52453dbf (patch) | |
tree | 3d9686f187fd720cefec49ff05a05ba868eb0136 /src/gui | |
parent | 643b58a4298f5a901674658f5937f55ca4a83205 (diff) |
QTextDocumentLayout: remove multiple calls to lineHeightType
Get LineHeightType once and reuse the value. There still are 2 calls
to lineHeightType from inside the QTextBlockFormat::lineHeight but
leaving them cause they need a bigger change.
Change-Id: I4016a5e483a0358d43f73d174a74545d4f3be338
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/text/qtextdocumentlayout.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index f8b4474e09..c5ef47e682 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -3415,19 +3415,21 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayout static inline void getLineHeightParams(const QTextBlockFormat &blockFormat, const QTextLine &line, qreal scaling, QFixed *lineAdjustment, QFixed *lineBreakHeight, QFixed *lineHeight, QFixed *lineBottom) { + const qreal height = line.height(); + const int lineHeightType = blockFormat.lineHeightType(); qreal rawHeight = qCeil(line.ascent() + line.descent() + line.leading()); *lineHeight = QFixed::fromReal(blockFormat.lineHeight(rawHeight, scaling)); - *lineBottom = QFixed::fromReal(blockFormat.lineHeight(line.height(), scaling)); + *lineBottom = QFixed::fromReal(blockFormat.lineHeight(height, scaling)); - if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight || blockFormat.lineHeightType() == QTextBlockFormat::MinimumHeight) { + if (lineHeightType == QTextBlockFormat::FixedHeight || lineHeightType == QTextBlockFormat::MinimumHeight) { *lineBreakHeight = *lineBottom; - if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight) + if (lineHeightType == QTextBlockFormat::FixedHeight) *lineAdjustment = QFixed::fromReal(line.ascent() + qMax(line.leading(), qreal(0.0))) - ((*lineHeight * 4) / 5); else - *lineAdjustment = QFixed::fromReal(line.height()) - *lineHeight; + *lineAdjustment = QFixed::fromReal(height) - *lineHeight; } else { - *lineBreakHeight = QFixed::fromReal(line.height()); + *lineBreakHeight = QFixed::fromReal(height); *lineAdjustment = 0; } } |