XmlListModel.status is Ready right after creation (should be Null)
authorCharles Yin <charles.yin@nokia.com>
Wed, 27 Jul 2011 02:07:42 +0000 (12:07 +1000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 29 Jul 2011 00:47:11 +0000 (02:47 +0200)
And whenever both the source the xml properties are empty, the status
should be Null as well.

Change-Id: I62936d9389b524833422a871b596b99cc93cc734
Task-number:QTBUG-18724
Reviewed-by:Michael Brasser
Reviewed-on: http://codereview.qt.nokia.com/2231
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
src/declarative/util/qdeclarativexmllistmodel.cpp
tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp

index e129596..5b978f4 100644 (file)
@@ -1018,7 +1018,10 @@ void QDeclarativeXmlListModel::queryCompleted(const QDeclarativeXmlQueryResult &
     d->size = result.size;
     d->data = result.data;
     d->keyRoleResultsCache = result.keyRoleResultsCache;
-    d->status = Ready;
+    if (d->src.isEmpty() && d->xml.isEmpty())
+        d->status = Null;
+    else
+        d->status = Ready;
     d->errorString.clear();
     d->queryId = -1;
 
index 37bafeb..2a1d716 100644 (file)
@@ -390,7 +390,10 @@ void tst_qdeclarativexmllistmodel::xml()
     QTRY_COMPARE(spy.count(), 1); spy.clear();
     QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
     QTRY_COMPARE(spy.count(), 1); spy.clear();
-    QCOMPARE(model->status(), QDeclarativeXmlListModel::Ready);
+    if (xml.isEmpty())
+        QCOMPARE(model->status(), QDeclarativeXmlListModel::Null);
+    else
+        QCOMPARE(model->status(), QDeclarativeXmlListModel::Ready);
     QVERIFY(model->errorString().isEmpty());
     QCOMPARE(model->count(), count);
 
@@ -452,6 +455,8 @@ void tst_qdeclarativexmllistmodel::source()
     QCOMPARE(model->count(), 9);
 
     model->setSource(source);
+    if (model->source().isEmpty())
+        QCOMPARE(model->status(), QDeclarativeXmlListModel::Null);
     QCOMPARE(model->progress(), qreal(0.0));
     QTRY_COMPARE(spy.count(), 1); spy.clear();
     QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
@@ -521,7 +526,8 @@ void tst_qdeclarativexmllistmodel::data()
 void tst_qdeclarativexmllistmodel::get()
 {
     QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/get.qml"));
-    QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());    
+    QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+
     QVERIFY(model != 0);
 
     QVERIFY(QMetaObject::invokeMethod(model, "runPreTest"));