aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextnodeengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
-rw-r--r--src/quick/items/qquicktextnodeengine.cpp11
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;
}