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 <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
bb10
Konstantin Ritt 2012-06-29 09:07:34 +03:00 committed by Qt by Nokia
parent f4c9797d5b
commit ee4f50b2e7
4 changed files with 5 additions and 4 deletions

View File

@ -72,6 +72,7 @@ public:
CarriageReturn = 0x000d,
Space = 0x0020,
Nbsp = 0x00a0,
SoftHyphen = 0x00ad,
ReplacementCharacter = 0xfffd,
ObjectReplacementCharacter = 0xfffc,
ByteOrderMark = 0xfeff,

View File

@ -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:

View File

@ -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;

View File

@ -550,7 +550,7 @@ void tst_QTextBoundaryFinder::isAtSoftHyphen_data()
QTest::addColumn<QList<int> >("expectedBreakPositions");
QString testString = QString::fromUtf8("I a-m break-able");
testString.replace(QLatin1Char('-'), QChar(0x00AD));
testString.replace(QLatin1Char('-'), QChar(QChar::SoftHyphen));
QList<int> 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());