aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-06-09 12:44:09 +1000
committerAaron Kennedy <aaron.kennedy@nokia.com>2011-06-09 12:44:09 +1000
commit236f4915ed6465fc85e5fdbd5620774caf57b831 (patch)
tree2ca6af0fe666e08ab059d7fb3fbdd87bc866b0c9
parentb2e6058db6eaa27f0e78315567d9174bcd1061d5 (diff)
Remove QtScript code from XmlListModel
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel.cpp18
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel_p.h4
2 files changed, 13 insertions, 9 deletions
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index 6f9245be65..e12959620b 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -780,18 +780,22 @@ void QDeclarativeXmlListModel::setNamespaceDeclarations(const QString &declarati
var title = model.get(0).title;
\endjs
*/
-QScriptValue QDeclarativeXmlListModel::get(int index) const
+QDeclarativeV8Handle QDeclarativeXmlListModel::get(int index) const
{
+ // Must be called with a context and handle scope
Q_D(const QDeclarativeXmlListModel);
- QScriptEngine *sengine = QDeclarativeEnginePrivate::getScriptEngine(qmlContext(this)->engine());
if (index < 0 || index >= count())
- return sengine->undefinedValue();
+ return QDeclarativeV8Handle::fromHandle(v8::Undefined());
- QScriptValue sv = sengine->newObject();
- for (int i=0; i<d->roleObjects.count(); i++)
- sv.setProperty(d->roleObjects[i]->name(), sengine->toScriptValue(d->data.value(i).value(index)));
- return sv;
+ QDeclarativeEngine *engine = qmlContext(this)->engine();
+ QV8Engine *v8engine = QDeclarativeEnginePrivate::getV8Engine(engine);
+ v8::Local<v8::Object> rv = v8::Object::New();
+ for (int ii = 0; ii < d->roleObjects.count(); ++ii)
+ rv->Set(v8engine->toString(d->roleObjects[ii]->name()),
+ v8engine->fromVariant(d->data.value(ii).value(index)));
+
+ return QDeclarativeV8Handle::fromHandle(rv);
}
/*!
diff --git a/src/declarative/util/qdeclarativexmllistmodel_p.h b/src/declarative/util/qdeclarativexmllistmodel_p.h
index 4600f4f358..3d8617f929 100644
--- a/src/declarative/util/qdeclarativexmllistmodel_p.h
+++ b/src/declarative/util/qdeclarativexmllistmodel_p.h
@@ -47,9 +47,9 @@
#include <QtCore/qurl.h>
#include <QtCore/qstringlist.h>
-#include <QtScript/qscriptvalue.h>
#include <private/qlistmodelinterface_p.h>
+#include <private/qv8engine_p.h>
QT_BEGIN_HEADER
@@ -110,7 +110,7 @@ public:
QString namespaceDeclarations() const;
void setNamespaceDeclarations(const QString&);
- Q_INVOKABLE QScriptValue get(int index) const;
+ Q_INVOKABLE QDeclarativeV8Handle get(int index) const;
enum Status { Null, Ready, Loading, Error };
Status status() const;