Fix improper antialiasing property behavior
authorOleg Shparber <trollixx@gmail.com>
Mon, 19 May 2014 07:53:39 +0000 (00:53 -0700)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 19 May 2014 18:16:37 +0000 (20:16 +0200)
For components antialiased by default the property was returned
as false if default true value was set to true again.

Task-number: QTBUG-39047
Change-Id: I16960a12b6d38a0d9e487fc6612610c39c4949d4
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
src/quick/items/qquickitem.cpp
tests/auto/quick/qquicktext/tst_qquicktext.cpp

index 3f0dae8..ef2eac4 100644 (file)
@@ -5691,10 +5691,12 @@ void QQuickItem::setAntialiasing(bool aa)
 {
     Q_D(QQuickItem);
 
-    bool changed = (aa != antialiasing());
-    d->antialiasingValid = true;
+    if (!d->antialiasingValid) {
+        d->antialiasingValid = true;
+        d->antialiasing = d->implicitAntialiasing;
+    }
 
-    if (!changed)
+    if (aa == d->antialiasing)
         return;
 
     d->antialiasing = aa;
index 0b69981..d36c55d 100644 (file)
@@ -1334,6 +1334,13 @@ void tst_qquicktext::antialiasing()
     text->resetAntialiasing();
     QCOMPARE(text->antialiasing(), true);
     QCOMPARE(spy.count(), 2);
+
+    // QTBUG-39047
+    component.setData("import QtQuick 2.0\n Text { antialiasing: true }", QUrl());
+    object.reset(component.create());
+    text = qobject_cast<QQuickText *>(object.data());
+    QVERIFY(text);
+    QCOMPARE(text->antialiasing(), true);
 }
 
 void tst_qquicktext::weight()