diff options
-rw-r--r-- | src/quick/items/qquickitemsmodule.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktext.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquicktext_p.h | 10 | ||||
-rw-r--r-- | tests/auto/quick/qquicktext/tst_qquicktext.cpp | 24 |
4 files changed, 28 insertions, 11 deletions
diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp index c8550af7cc..fd6788c256 100644 --- a/src/quick/items/qquickitemsmodule.cpp +++ b/src/quick/items/qquickitemsmodule.cpp @@ -463,6 +463,7 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor) qmlRegisterType<QQuickAnimatedSprite, 12>("QtQuick", 2, 12, "AnimatedSprite"); qmlRegisterType<QQuickGradient, 12>(uri, 2, 12, "Gradient"); qmlRegisterType<QQuickFlickable, 12>(uri, 2, 12, "Flickable"); + qmlRegisterType<QQuickText, 12>(uri, 2, 12, "Text"); } static void initResources() diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index 3c260165f7..3cce30aaf6 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -486,6 +486,10 @@ void QQuickTextPrivate::updateSize() if (layedOutTextRect.size() != previousSize) emit q->contentSizeChanged(); + if (layedOutTextRect.width() != previousSize.width()) + emit q->contentWidthChanged(layedOutTextRect.width()); + if (layedOutTextRect.height() != previousSize.height()) + emit q->contentHeightChanged(layedOutTextRect.height()); updateType = UpdatePaintNode; q->update(); } diff --git a/src/quick/items/qquicktext_p.h b/src/quick/items/qquicktext_p.h index 15e989c13d..f4e7fa7046 100644 --- a/src/quick/items/qquicktext_p.h +++ b/src/quick/items/qquicktext_p.h @@ -79,10 +79,10 @@ class Q_QUICK_PRIVATE_EXPORT QQuickText : public QQuickImplicitSizeItem Q_PROPERTY(TextFormat textFormat READ textFormat WRITE setTextFormat NOTIFY textFormatChanged) Q_PROPERTY(TextElideMode elide READ elideMode WRITE setElideMode NOTIFY elideModeChanged) //### elideMode? - Q_PROPERTY(qreal contentWidth READ contentWidth NOTIFY contentSizeChanged) - Q_PROPERTY(qreal contentHeight READ contentHeight NOTIFY contentSizeChanged) - Q_PROPERTY(qreal paintedWidth READ contentWidth NOTIFY contentSizeChanged) // Compatibility - Q_PROPERTY(qreal paintedHeight READ contentHeight NOTIFY contentSizeChanged) + Q_PROPERTY(qreal contentWidth READ contentWidth NOTIFY contentWidthChanged) + Q_PROPERTY(qreal contentHeight READ contentHeight NOTIFY contentHeightChanged) + Q_PROPERTY(qreal paintedWidth READ contentWidth NOTIFY contentWidthChanged) // Compatibility + Q_PROPERTY(qreal paintedHeight READ contentHeight NOTIFY contentHeightChanged) Q_PROPERTY(qreal lineHeight READ lineHeight WRITE setLineHeight NOTIFY lineHeightChanged) Q_PROPERTY(LineHeightMode lineHeightMode READ lineHeightMode WRITE setLineHeightMode NOTIFY lineHeightModeChanged) Q_PROPERTY(QUrl baseUrl READ baseUrl WRITE setBaseUrl RESET resetBaseUrl NOTIFY baseUrlChanged) @@ -272,6 +272,8 @@ Q_SIGNALS: void textFormatChanged(QQuickText::TextFormat textFormat); void elideModeChanged(QQuickText::TextElideMode mode); void contentSizeChanged(); + Q_REVISION(12) void contentWidthChanged(qreal contentWidth); + Q_REVISION(12) void contentHeightChanged(qreal contentHeight); void lineHeightChanged(qreal lineHeight); void lineHeightModeChanged(LineHeightMode mode); void fontSizeModeChanged(); diff --git a/tests/auto/quick/qquicktext/tst_qquicktext.cpp b/tests/auto/quick/qquicktext/tst_qquicktext.cpp index 48069ab8c5..63e023644f 100644 --- a/tests/auto/quick/qquicktext/tst_qquicktext.cpp +++ b/tests/auto/quick/qquicktext/tst_qquicktext.cpp @@ -2384,23 +2384,31 @@ void tst_qquicktext::contentSize() QScopedPointer<QObject> object(textComponent.create()); QQuickText *textObject = qobject_cast<QQuickText *>(object.data()); - QSignalSpy spy(textObject, SIGNAL(contentSizeChanged())); + QSignalSpy spySize(textObject, SIGNAL(contentSizeChanged())); + QSignalSpy spyWidth(textObject, SIGNAL(contentWidthChanged(qreal))); + QSignalSpy spyHeight(textObject, SIGNAL(contentHeightChanged(qreal))); textObject->setText("The quick red fox jumped over the lazy brown dog"); QVERIFY(textObject->contentWidth() > textObject->width()); QVERIFY(textObject->contentHeight() < textObject->height()); - QCOMPARE(spy.count(), 1); + QCOMPARE(spySize.count(), 1); + QCOMPARE(spyWidth.count(), 1); + QCOMPARE(spyHeight.count(), 0); textObject->setWrapMode(QQuickText::WordWrap); QVERIFY(textObject->contentWidth() <= textObject->width()); QVERIFY(textObject->contentHeight() > textObject->height()); - QCOMPARE(spy.count(), 2); + QCOMPARE(spySize.count(), 2); + QCOMPARE(spyWidth.count(), 2); + QCOMPARE(spyHeight.count(), 1); textObject->setElideMode(QQuickText::ElideRight); QVERIFY(textObject->contentWidth() <= textObject->width()); QVERIFY(textObject->contentHeight() < textObject->height()); - QCOMPARE(spy.count(), 3); + QCOMPARE(spySize.count(), 3); + QCOMPARE(spyWidth.count(), 3); + QCOMPARE(spyHeight.count(), 2); int spyCount = 3; qreal elidedWidth = textObject->contentWidth(); @@ -2409,14 +2417,16 @@ void tst_qquicktext::contentSize() QVERIFY(textObject->contentHeight() < textObject->height()); // this text probably won't have the same elided width, but it's not guaranteed. if (textObject->contentWidth() != elidedWidth) - QCOMPARE(spy.count(), ++spyCount); + QCOMPARE(spySize.count(), ++spyCount); else - QCOMPARE(spy.count(), spyCount); + QCOMPARE(spySize.count(), spyCount); textObject->setElideMode(QQuickText::ElideNone); QVERIFY(textObject->contentWidth() > textObject->width()); QVERIFY(textObject->contentHeight() > textObject->height()); - QCOMPARE(spy.count(), ++spyCount); + QCOMPARE(spySize.count(), ++spyCount); + QCOMPARE(spyWidth.count(), spyCount); + QCOMPARE(spyHeight.count(), 3); } void tst_qquicktext::geometryChanged() |