From af15292e4982c11542487d39fc76ccfb8516598f Mon Sep 17 00:00:00 2001
From: Yann Bodson <yann.bodson@nokia.com>
Date: Wed, 3 Nov 2010 14:55:46 +1000
Subject: Regression: QDeclarativeText does not update when text turns empty

Task-number: QTBUG-14865
Reviewed-by: Michael Brasser
---
 src/declarative/graphicsitems/qdeclarativetext.cpp |   1 +
 .../graphicsitems/qdeclarativetextlayout.cpp       |  13 +
 .../graphicsitems/qdeclarativetextlayout_p.h       |   1 +
 .../qdeclarativetext/data-MAC/qtbug_14865.0.png    | Bin 0 -> 1695 bytes
 .../qdeclarativetext/data-MAC/qtbug_14865.1.png    | Bin 0 -> 625 bytes
 .../qdeclarativetext/data-MAC/qtbug_14865.qml      | 719 +++++++++++++++++++++
 .../qmlvisual/qdeclarativetext/qtbug_14865.qml     |  17 +
 7 files changed, 751 insertions(+)
 create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png
 create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png
 create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
 create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml

diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp
index 8cb47aa..84f276e 100644
--- a/src/declarative/graphicsitems/qdeclarativetext.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetext.cpp
@@ -219,6 +219,7 @@ void QDeclarativeTextPrivate::updateSize()
 
     QFontMetrics fm(font);
     if (text.isEmpty()) {
+        q->setImplicitWidth(0);
         q->setImplicitHeight(fm.height());
         emit q->paintedSizeChanged();
         q->update();
diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
index 89a2158..db5d75d 100644
--- a/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextlayout.cpp
@@ -285,6 +285,19 @@ void QDeclarativeTextLayout::beginLayout()
     QTextLayout::beginLayout();
 }
 
+void QDeclarativeTextLayout::clearLayout()
+{
+    if (d && d->cached) {
+        d->cached = false;
+        d->items.clear();
+        d->positions.clear();
+        d->glyphs.clear();
+        d->chars.clear();
+        d->position = QPointF();
+    }
+    QTextLayout::clearLayout();
+}
+
 void QDeclarativeTextLayout::prepare()
 {
     if (!d || !d->cached) {
diff --git a/src/declarative/graphicsitems/qdeclarativetextlayout_p.h b/src/declarative/graphicsitems/qdeclarativetextlayout_p.h
index 90bf0e0..8b81db3 100644
--- a/src/declarative/graphicsitems/qdeclarativetextlayout_p.h
+++ b/src/declarative/graphicsitems/qdeclarativetextlayout_p.h
@@ -59,6 +59,7 @@ public:
     ~QDeclarativeTextLayout();
 
     void beginLayout();
+    void clearLayout();
 
     void prepare();
     void draw(QPainter *, const QPointF & = QPointF());
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png
new file mode 100644
index 0000000..a947584
Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png
new file mode 100644
index 0000000..84430bb
Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
new file mode 100644
index 0000000..940d3c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
@@ -0,0 +1,719 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+    Frame {
+        msec: 0
+    }
+    Frame {
+        msec: 16
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 32
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 48
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 64
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 80
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 96
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 112
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 128
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 144
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 160
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 176
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 192
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 208
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 224
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 240
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 256
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 272
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 288
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 304
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 320
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 336
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 352
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 368
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 384
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 400
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 416
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 432
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 448
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 464
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 480
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 496
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 512
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 528
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 544
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 560
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 576
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 592
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 608
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 624
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 640
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 656
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 672
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 688
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 704
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 720
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 736
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 752
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 768
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 784
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 800
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 816
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 832
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 848
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 864
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 880
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 896
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 912
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 928
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 944
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 960
+        image: "qtbug_14865.0.png"
+    }
+    Frame {
+        msec: 976
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 992
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 1008
+        hash: "f5b2ec4a5220eabe1186bb2fd65a7263"
+    }
+    Frame {
+        msec: 1024
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1040
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1056
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1072
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1088
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1104
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1120
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1136
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1152
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1168
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1184
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1200
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1216
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1232
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1248
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1264
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1280
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1296
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1312
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1328
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1344
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1360
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1376
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1392
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1408
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1424
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1440
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1456
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1472
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1488
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1504
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1520
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1536
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1552
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1568
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1584
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1600
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1616
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1632
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1648
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1664
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1680
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1696
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1712
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1728
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1744
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1760
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1776
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1792
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1808
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1824
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1840
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1856
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1872
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1888
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1904
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1920
+        image: "qtbug_14865.1.png"
+    }
+    Frame {
+        msec: 1936
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1952
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1968
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 1984
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2000
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2016
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2032
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2048
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2064
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2080
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2096
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2112
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2128
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2144
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2160
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2176
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2192
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2208
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2224
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2240
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2256
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Key {
+        type: 6
+        key: 16777249
+        modifiers: 0
+        text: ""
+        autorep: false
+        count: 1
+    }
+    Frame {
+        msec: 2272
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2288
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2304
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2320
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2336
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2352
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2368
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2384
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2400
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2416
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2432
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2448
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2464
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2480
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2496
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2512
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2528
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2544
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2560
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2576
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2592
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2608
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2624
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2640
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2656
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2672
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2688
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2704
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2720
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2736
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2752
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2768
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2784
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2800
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+    Frame {
+        msec: 2816
+        hash: "eee4600ac08b458ac7ac2320e225674c"
+    }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml
new file mode 100644
index 0000000..07416dc
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml
@@ -0,0 +1,17 @@
+import QtQuick 1.0
+
+Rectangle {
+    width: 200; height: 200
+
+    Text {
+        id: label
+        objectName: "label"
+        text: "Hello world!"
+        width: 10
+    }
+
+    Timer {
+        running: true; interval: 1000
+        onTriggered: label.text = ""
+    }
+}
-- 
cgit v0.12