diff options
-rw-r--r-- | src/gui/text/qtextformat.cpp | 8 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextformat/tst_qtextformat.cpp | 9 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 8fe474af2c..da36f87230 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -201,8 +201,10 @@ public: inline void insertProperty(qint32 key, const QVariant &value) { hashDirty = true; - if (key >= QTextFormat::FirstFontProperty && key <= QTextFormat::LastFontProperty) + if ((key >= QTextFormat::FirstFontProperty && key <= QTextFormat::LastFontProperty) + || key == QTextFormat::FontLetterSpacingType) { fontDirty = true; + } for (int i = 0; i < props.count(); ++i) if (props.at(i).key == key) { props[i].value = value; @@ -216,8 +218,10 @@ public: for (int i = 0; i < props.count(); ++i) if (props.at(i).key == key) { hashDirty = true; - if (key >= QTextFormat::FirstFontProperty && key <= QTextFormat::LastFontProperty) + if ((key >= QTextFormat::FirstFontProperty && key <= QTextFormat::LastFontProperty) + || key == QTextFormat::FontLetterSpacingType) { fontDirty = true; + } props.remove(i); return; } diff --git a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp index b8afd6a447..4ab80bdcfe 100644 --- a/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp +++ b/tests/auto/gui/text/qtextformat/tst_qtextformat.cpp @@ -283,20 +283,29 @@ void tst_QTextFormat::testLetterSpacing() QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacingType), false); format.setFontLetterSpacingType(QFont::AbsoluteSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing); + format.setFontLetterSpacing(10.0); + QCOMPARE(format.font().letterSpacing(), 10.0); QCOMPARE(format.hasProperty(QTextFormat::FontLetterSpacing), true); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing)); format.setFontLetterSpacingType(QFont::PercentageSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::PercentageSpacing); + format.setFontLetterSpacing(110.0); + QCOMPARE(format.font().letterSpacing(), 110.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 110.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::PercentageSpacing)); format.setFontLetterSpacingType(QFont::AbsoluteSpacing); + QCOMPARE(format.font().letterSpacingType(), QFont::AbsoluteSpacing); + format.setFontLetterSpacing(10.0); + QCOMPARE(format.font().letterSpacing(), 10.0); QCOMPARE(format.property(QTextFormat::FontLetterSpacingType).toInt(), int(QFont::AbsoluteSpacing)); QCOMPARE(format.property(QTextFormat::FontLetterSpacing).toDouble(), 10.0); |