diff options
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
| -rw-r--r-- | src/quick/items/qquicktextnodeengine.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp index b3401200c8..4d1784a979 100644 --- a/src/quick/items/qquicktextnodeengine.cpp +++ b/src/quick/items/qquicktextnodeengine.cpp @@ -1154,6 +1154,17 @@ void QQuickTextNodeEngine::addTextBlock(QTextDocument *textDocument, const QText } #endif + // Add block decorations (so far only horizontal rules) + if (block.blockFormat().hasProperty(QTextFormat::BlockTrailingHorizontalRulerWidth)) { + auto ruleLength = qvariant_cast<QTextLength>(block.blockFormat().property(QTextFormat::BlockTrailingHorizontalRulerWidth)); + QRectF ruleRect(0, 0, ruleLength.value(blockBoundingRect.width()), 1); + ruleRect.moveCenter(blockBoundingRect.center()); + const QColor ruleColor = block.blockFormat().hasProperty(QTextFormat::BackgroundBrush) + ? qvariant_cast<QBrush>(block.blockFormat().property(QTextFormat::BackgroundBrush)).color() + : m_textColor; + m_lines.append(TextDecoration(QQuickTextNodeEngine::Unselected, ruleRect, ruleColor)); + } + setCurrentLine(QTextLine()); // Reset current line because the text layout changed m_hasContents = true; } |
