diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2012-10-04 06:52:13 +0300 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-10 13:26:13 +0200 |
commit | f0ee31dc93813808a59a0fe576da120de2caf074 (patch) | |
tree | 4894feb2cdf725f4bf31b7c04b91e213ed08e217 /src/corelib/tools/qtextboundaryfinder.cpp | |
parent | 008e5ba61a68846ad29c65a2fe10b8c19c74f6eb (diff) |
QTextBoundaryFinder: Introduce BoundaryReason::MandatoryBreak flag
that will be returned by boundaryReasons() when the boundary finder
is at the line end position (CR, LF, NewLine Function, End of Text, etc.).
The MandatoryBreak flag, if set, means the text should be wrapped at a given position.
Change-Id: I32d4f570935d2e015bfc5f18915396a15f009fde
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/corelib/tools/qtextboundaryfinder.cpp')
-rw-r--r-- | src/corelib/tools/qtextboundaryfinder.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/corelib/tools/qtextboundaryfinder.cpp b/src/corelib/tools/qtextboundaryfinder.cpp index 7f120323fe..416a14a35a 100644 --- a/src/corelib/tools/qtextboundaryfinder.cpp +++ b/src/corelib/tools/qtextboundaryfinder.cpp @@ -162,6 +162,8 @@ static void init(QTextBoundaryFinder::BoundaryType type, const QChar *chars, int \value NotAtBoundary The boundary finder is not at a boundary position. \value StartWord The boundary finder is at the start of a word. \value EndWord The boundary finder is at the end of a word. + \value MandatoryBreak Since 5.0. The boundary finder is at the end of line + (can occur for a Line boundary type only). \value SoftHyphen The boundary finder is at the soft hyphen (can occur for a Line boundary type only). */ @@ -477,7 +479,10 @@ QTextBoundaryFinder::BoundaryReasons QTextBoundaryFinder::boundaryReasons() cons reasons |= EndWord; break; case Line: - if (pos > 0 && chars[pos - 1].unicode() == QChar::SoftHyphen) + // ### TR#14 LB2 prohibits break at sot + if (d->attributes[pos].mandatoryBreak || pos == 0) + reasons |= MandatoryBreak; + else if (pos > 0 && chars[pos - 1].unicode() == QChar::SoftHyphen) reasons |= SoftHyphen; // fall through case Grapheme: |