diff options
Diffstat (limited to 'src/gui/text/qtextengine.cpp')
| -rw-r--r-- | src/gui/text/qtextengine.cpp | 18 | 
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 4a3ce02a18b..f5e77e0e616 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1887,7 +1887,7 @@ void QTextEngine::validate() const          layoutData->string = block.text();          const bool nextBlockValid = block.next().isValid();          if (!nextBlockValid && option.flags() & QTextOption::ShowDocumentTerminator) { -            layoutData->string += QChar(0xA7); +            layoutData->string += QLatin1Char(0xA7);          } else if (option.flags() & QTextOption::ShowLineAndParagraphSeparators) {              layoutData->string += QLatin1Char(nextBlockValid ? 0xb6 : 0x20);          } @@ -2413,9 +2413,9 @@ static void set(QJustificationPoint *point, int type, const QGlyphLayout &glyph,      point->glyph = glyph;      if (type >= Justification_Arabic_Normal) { -        QChar ch(0x640); // Kashida character +        const char32_t ch = U'\x640'; // Kashida character -        glyph_t kashidaGlyph = fe->glyphIndex(ch.unicode()); +        glyph_t kashidaGlyph = fe->glyphIndex(ch);          if (kashidaGlyph != 0) {              QGlyphLayout g;              g.numGlyphs = 1; @@ -3034,7 +3034,7 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int      {          QFontEngine *engine = fnt.d->engineForScript(QChar::Script_Common); -        QChar ellipsisChar(0x2026); +        QChar ellipsisChar = u'\x2026';          // We only want to use the ellipsis character if it is from the main          // font (not one of the fallbacks), since using a fallback font @@ -3076,6 +3076,8 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int      if (!attributes)          return QString(); +    constexpr char16_t ZWJ = u'\x200d'; // ZERO-WIDTH JOINER +      if (mode == Qt::ElideRight) {          QFixed currentWidth;          int pos; @@ -3093,7 +3095,7 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int                   && currentWidth < availableWidth);          if (nextCharJoins(layoutData->string, pos)) -            ellipsisText.prepend(QChar(0x200d) /* ZWJ */); +            ellipsisText.prepend(ZWJ);          return stringMidRetainingBidiCC(layoutData->string,                                          QString(), ellipsisText, @@ -3116,7 +3118,7 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int                   && currentWidth < availableWidth);          if (prevCharJoins(layoutData->string, pos)) -            ellipsisText.append(QChar(0x200d) /* ZWJ */); +            ellipsisText.append(ZWJ);          return stringMidRetainingBidiCC(layoutData->string,                                          ellipsisText, QString(), @@ -3151,9 +3153,9 @@ QString QTextEngine::elidedText(Qt::TextElideMode mode, const QFixed &width, int                   && leftWidth + rightWidth < availableWidth);          if (nextCharJoins(layoutData->string, leftPos)) -            ellipsisText.prepend(QChar(0x200d) /* ZWJ */); +            ellipsisText.prepend(ZWJ);          if (prevCharJoins(layoutData->string, rightPos)) -            ellipsisText.append(QChar(0x200d) /* ZWJ */); +            ellipsisText.append(ZWJ);          return layoutData->string.midRef(from, leftPos - from) + ellipsisText + layoutData->string.midRef(rightPos, to - rightPos);      }  | 
