diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/text/qtextengine.cpp | 2 | ||||
-rw-r--r-- | src/gui/text/qtextengine_p.h | 5 | ||||
-rw-r--r-- | src/gui/text/qtextlayout.cpp | 5 | ||||
-rw-r--r-- | src/gui/text/qtextoption.cpp | 3 |
4 files changed, 9 insertions, 6 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 9169ed8da1..2d1f0fa823 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -2064,7 +2064,7 @@ void QTextEngine::itemize() const case QChar::Space: case QChar::Nbsp: if (option.flags() & QTextOption::ShowTabsAndSpaces) { - analysis->flags = QScriptAnalysis::Space; + analysis->flags = (*uc == QChar::Space) ? QScriptAnalysis::Space : QScriptAnalysis::Nbsp; analysis->bidiLevel = bidi.baseLevel; break; } diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index 42061deff5..e9187ea605 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -143,9 +143,10 @@ struct Q_AUTOTEST_EXPORT QScriptAnalysis LineOrParagraphSeparator = 4, Space = 5, SpaceTabOrObject = Space, - Tab = 6, + Nbsp = 6, + Tab = 7, TabOrObject = Tab, - Object = 7 + Object = 8 }; enum BidiFlags { BidiBN = 1, diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index cd1990dfb9..860d1e8c7c 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -2610,12 +2610,13 @@ void QTextLine::draw(QPainter *p, const QPointF &pos, const QTextLayout::FormatR QPainterPrivate::get(p)->drawTextItem(pos, gf, eng); } - if (si.analysis.flags == QScriptAnalysis::Space + if ((si.analysis.flags == QScriptAnalysis::Space + || si.analysis.flags == QScriptAnalysis::Nbsp) && (eng->option.flags() & QTextOption::ShowTabsAndSpaces)) { QBrush c = format.foreground(); if (c.style() != Qt::NoBrush) p->setPen(c.color()); - QChar visualSpace((ushort)0xb7); + QChar visualSpace(si.analysis.flags == QScriptAnalysis::Space ? (ushort)0xb7 : (ushort)0xb0); p->drawText(QPointF(iterator.x.toReal(), itemBaseLine.toReal()), visualSpace); p->setPen(pen); } diff --git a/src/gui/text/qtextoption.cpp b/src/gui/text/qtextoption.cpp index a3fa0e7351..2c2c05567f 100644 --- a/src/gui/text/qtextoption.cpp +++ b/src/gui/text/qtextoption.cpp @@ -307,7 +307,8 @@ QList<QTextOption::Tab> QTextOption::tabs() const \value IncludeTrailingSpaces When this option is set, QTextLine::naturalTextWidth() and naturalTextRect() will return a value that includes the width of trailing spaces in the text; otherwise this width is excluded. - \value ShowTabsAndSpaces Visualize spaces with little dots, and tabs with little arrows. + \value ShowTabsAndSpaces Visualize spaces with little dots, and tabs with little arrows. Non-breaking spaces are + shown differently to breaking spaces. \value ShowLineAndParagraphSeparators Visualize line and paragraph separators with appropriate symbol characters. \value ShowDocumentTerminator Visualize the end of the document with a section sign. This enum value was added in Qt 5.7. |