aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp')
-rw-r--r--src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp b/src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp
index 23bc43a566..08caa662c2 100644
--- a/src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp
+++ b/src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp
@@ -41,13 +41,17 @@
#include "qquickwritingsystemlistmodel_p.h"
#include <QtGui/qfontdatabase.h>
-#include <QtQml/qqml.h>
#include <QtQml/qqmlcontext.h>
-#include <QtQml/qqmlengine.h>
-#include <QtQml/qjsengine.h>
+#include <private/qqmlengine_p.h>
+#include <private/qv8engine_p.h>
+#include <private/qv4value_p.h>
+#include <private/qv4engine_p.h>
+#include <private/qv4object_p.h>
QT_BEGIN_NAMESPACE
+using namespace QV4;
+
class QQuickWritingSystemListModelPrivate
{
Q_DECLARE_PUBLIC(QQuickWritingSystemListModel)
@@ -140,22 +144,23 @@ QStringList QQuickWritingSystemListModel::writingSystems() const
return result;
}
-QJSValue QQuickWritingSystemListModel::get(int idx) const
+QQmlV4Handle QQuickWritingSystemListModel::get(int idx) const
{
Q_D(const QQuickWritingSystemListModel);
- QQmlEngine *engine = qmlContext(this)->engine();
-
if (idx < 0 || idx >= count())
- return engine->newObject();
-
- QJSValue result = engine->newObject();
- int count = d->roleNames.keys().count();
- for (int i = 0; i < count; ++i)
- result.setProperty(QString(d->roleNames[Qt::UserRole + i + 1]), data(index(idx, 0), Qt::UserRole + i + 1).toString());
+ return QQmlV4Handle(Value::undefinedValue());
- return result;
+ QQmlEngine *engine = qmlContext(this)->engine();
+ QV8Engine *v8engine = QQmlEnginePrivate::getV8Engine(engine);
+ ExecutionEngine *v4engine = QV8Engine::getV4(v8engine);
+ Object *o = v4engine->newObject();
+ for (int ii = 0; ii < d->roleNames.keys().count(); ++ii) {
+ Property *p = o->insertMember(v4engine->newIdentifier(d->roleNames[Qt::UserRole + ii + 1]), PropertyAttributes());
+ p->value = Value::fromReturnedValue(v8engine->fromVariant(data(index(idx, 0), Qt::UserRole + ii + 1)));
+ }
+ return QQmlV4Handle(Value::fromObject(o));
}
void QQuickWritingSystemListModel::classBegin()