Merge branch 'qtquick2' of scm.dev.nokia.troll.no:qt/qtdeclarative-staging into qtquick2
authorAlan Alpert <alan.alpert@nokia.com>
Thu, 19 May 2011 08:43:59 +0000 (18:43 +1000)
committerAlan Alpert <alan.alpert@nokia.com>
Thu, 19 May 2011 08:43:59 +0000 (18:43 +1000)
src/declarative/items/qsgshadereffectsource.cpp
src/declarative/qml/qdeclarativeengine.cpp
tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp

index 217b0e6..e2c50bb 100644 (file)
@@ -780,12 +780,12 @@ QSGNode *QSGShaderEffectSource::updatePaintNode(QSGNode *oldNode, UpdatePaintNod
 
     tex->setLive(m_live);
     tex->setItem(QSGItemPrivate::get(m_sourceItem)->itemNode());
-    QRectF sourceRect = m_sourceRect.isEmpty()
+    QRectF sourceRect = m_sourceRect.isNull()
                       ? QRectF(0, 0, m_sourceItem->width(), m_sourceItem->height())
                       : m_sourceRect;
     tex->setRect(sourceRect);
     QSize textureSize = m_textureSize.isEmpty()
-                      ? QSize(qCeil(sourceRect.width()), qCeil(sourceRect.height()))
+                      ? QSize(qCeil(qAbs(sourceRect.width())), qCeil(qAbs(sourceRect.height())))
                       : m_textureSize;
     tex->setSize(textureSize);
     tex->setRecursive(m_recursive);
index 86b7e94..073e1d4 100644 (file)
@@ -1740,9 +1740,6 @@ QScriptValue QDeclarativeEnginePrivate::rect(QScriptContext *ctxt, QScriptEngine
     qsreal w = ctxt->argument(2).toNumber();
     qsreal h = ctxt->argument(3).toNumber();
 
-    if (w < 0 || h < 0)
-        return engine->nullValue();
-
     return QDeclarativeEnginePrivate::get(engine)->scriptValueFromVariant(QVariant::fromValue(QRectF(x, y, w, h)));
 }
 
index e6024ea..fc8939f 100644 (file)
@@ -174,7 +174,7 @@ void tst_qdeclarativeqt::rect()
     QCOMPARE(qvariant_cast<QRectF>(object->property("test2")), QRectF(-10, 13, 100, 109.6));
     QCOMPARE(qvariant_cast<QRectF>(object->property("test3")), QRectF());
     QCOMPARE(qvariant_cast<QRectF>(object->property("test4")), QRectF());
-    QCOMPARE(qvariant_cast<QRectF>(object->property("test5")), QRectF());
+    QCOMPARE(qvariant_cast<QRectF>(object->property("test5")), QRectF(10, 13, 100, -109));
 
     delete object;
 }