From ee4f50b2e78e1d8b4200866fa88dbf7dc5cffe26 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Fri, 29 Jun 2012 09:07:34 +0300 Subject: Add QChar::SoftHyphen enum value Just like for the QChar::ByteOrderMark, `ch == QChar::SoftHyphen` is much more readable than `ch == 0x00ad // (soft-hyphen)`, etc. Change-Id: I9c85f14cfd979037d35103c3259a435fd729b869 Reviewed-by: Thiago Macieira Reviewed-by: Oswald Buddenhagen --- src/corelib/tools/qchar.h | 1 + src/corelib/tools/qunicodetools.cpp | 2 +- src/gui/text/qtextengine.cpp | 2 +- .../corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h index 97edf12cc9..760b7a5f0e 100644 --- a/src/corelib/tools/qchar.h +++ b/src/corelib/tools/qchar.h @@ -72,6 +72,7 @@ public: CarriageReturn = 0x000d, Space = 0x0020, Nbsp = 0x00a0, + SoftHyphen = 0x00ad, ReplacementCharacter = 0xfffd, ObjectReplacementCharacter = 0xfffc, ByteOrderMark = 0xfeff, diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp index 1fef6aefc4..f8db6cbac3 100644 --- a/src/corelib/tools/qunicodetools.cpp +++ b/src/corelib/tools/qunicodetools.cpp @@ -480,7 +480,7 @@ static void getLineBreaks(const ushort *string, quint32 len, HB_CharAttributes * switch (LB::breakTable[cls][ncls < QUnicodeTables::LineBreak_SA ? ncls : QUnicodeTables::LineBreak_AL]) { case LB::DirectBreak: lineBreakType = HB_Break; - if (lucs4 == 0x00ad) // soft hyphen + if (lucs4 == QChar::SoftHyphen) lineBreakType = HB_SoftHyphen; break; case LB::IndirectBreak: diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 41d12a65d6..3e5e89c57b 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -3220,7 +3220,7 @@ QScriptItem &QTextLineItemIterator::next() } // show soft-hyphen at line-break if (si->position + itemLength >= lineEnd - && eng->layoutData->string.at(lineEnd - 1) == 0x00ad) + && eng->layoutData->string.at(lineEnd - 1).unicode() == QChar::SoftHyphen) glyphs.attributes[glyphsEnd - 1].dontPrint = false; itemWidth = 0; diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp index ad48ebf047..045da9f24c 100644 --- a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp +++ b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp @@ -550,7 +550,7 @@ void tst_QTextBoundaryFinder::isAtSoftHyphen_data() QTest::addColumn >("expectedBreakPositions"); QString testString = QString::fromUtf8("I a-m break-able"); - testString.replace(QLatin1Char('-'), QChar(0x00AD)); + testString.replace(QLatin1Char('-'), QChar(QChar::SoftHyphen)); QList expectedBreakPositions; expectedBreakPositions << 0 << 2 << 4 << 6 << 12 << 16; QTest::newRow("Soft Hyphen") << testString << expectedBreakPositions; @@ -564,7 +564,7 @@ void tst_QTextBoundaryFinder::isAtSoftHyphen() doTestData(testString, expectedBreakPositions, QTextBoundaryFinder::Line); QTextBoundaryFinder boundaryFinder(QTextBoundaryFinder::Line, testString); - for (int i = 0; (i = testString.indexOf(QChar(0x00AD), i)) != -1; ++i) { + for (int i = 0; (i = testString.indexOf(QChar(QChar::SoftHyphen), i)) != -1; ++i) { QVERIFY(expectedBreakPositions.contains(i + 1)); boundaryFinder.setPosition(i + 1); QVERIFY(boundaryFinder.isAtBoundary()); -- cgit v1.2.3