aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2011-07-25 14:27:52 +1000
committerQt by Nokia <qt-info@nokia.com>2011-07-28 10:04:08 +0200
commitdb6c099e42f96710f2ad09f6d3d2c94ffba600d7 (patch)
tree53738ebc9439e1de24f46b76d99600be421e2fc3 /src/declarative
parent43d940fd30ea4728664de393479438f54e888b32 (diff)
Fix bug 20505: Offline Storage API: wrong types of row fields
fields types should be returned as same as defined, not strings. Change-Id: I9a0d03acb79850e93cc9266e2595ee61af2089a0 Task-number:QTBUG-20505 Reviewed-on: http://codereview.qt.nokia.com/2065 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative')
-rw-r--r--src/declarative/qml/qdeclarativesqldatabase.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp
index df072ed02d..fbe5b95aeb 100644
--- a/src/declarative/qml/qdeclarativesqldatabase.cpp
+++ b/src/declarative/qml/qdeclarativesqldatabase.cpp
@@ -51,6 +51,7 @@
#include <QtSql/qsqlquery.h>
#include <QtSql/qsqlerror.h>
#include <QtSql/qsqlrecord.h>
+#include <QtSql/qsqlfield.h>
#include <QtGui/qdesktopservices.h>
#include <QtCore/qstack.h>
#include <QtCore/qcryptographichash.h>
@@ -222,8 +223,13 @@ static v8::Handle<v8::Value> qmlsqldatabase_rows_index(QV8SqlDatabaseResource *r
// XXX optimize
v8::Local<v8::Object> row = v8::Object::New();
for (int ii = 0; ii < record.count(); ++ii) {
- row->Set(r->engine->toString(record.fieldName(ii)),
- r->engine->toString(record.value(ii).toString()));
+ QVariant v = record.value(ii);
+ if (v.isNull()) {
+ row->Set(r->engine->toString(record.fieldName(ii)), v8::Null());
+ } else {
+ row->Set(r->engine->toString(record.fieldName(ii)),
+ r->engine->fromVariant(v));
+ }
}
return row;
} else {