aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@digia.com>2013-09-20 11:00:29 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-20 22:38:28 +0200
commitb365471f0abc79f08bf0d852aea3be0a601c6901 (patch)
tree18f03b23a8274a9954a4922a0395182a25aa2ed4 /src/imports
parent6b2118e00c382708c609ebb14a1aa7864e1d98cd (diff)
dialog-private: replace QJSValue with QQmlV4Handle in js functions
Change-Id: I1e16147a1930f717cddd246068c06728e76eddd9 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/dialogs-private/dialogs-private.pro2
-rw-r--r--src/imports/dialogs-private/qquickfontlistmodel.cpp44
-rw-r--r--src/imports/dialogs-private/qquickfontlistmodel_p.h8
-rw-r--r--src/imports/dialogs-private/qquickwritingsystemlistmodel.cpp31
-rw-r--r--src/imports/dialogs-private/qquickwritingsystemlistmodel_p.h6
5 files changed, 54 insertions, 37 deletions
diff --git a/src/imports/dialogs-private/dialogs-private.pro b/src/imports/dialogs-private/dialogs-private.pro
index 8e35afa2bc..7f04617ef5 100644
--- a/src/imports/dialogs-private/dialogs-private.pro
+++ b/src/imports/dialogs-private/dialogs-private.pro
@@ -12,6 +12,6 @@ HEADERS += \
qquickfontlistmodel_p.h \
qquickwritingsystemlistmodel_p.h
-QT += quick-private gui-private core-private qml-private
+QT += gui-private core-private qml-private
load(qml_plugin)
diff --git a/src/imports/dialogs-private/qquickfontlistmodel.cpp b/src/imports/dialogs-private/qquickfontlistmodel.cpp
index 54ce700238..234a5735ec 100644
--- a/src/imports/dialogs-private/qquickfontlistmodel.cpp
+++ b/src/imports/dialogs-private/qquickfontlistmodel.cpp
@@ -41,13 +41,17 @@
#include "qquickfontlistmodel_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 QQuickFontListModelPrivate
{
Q_DECLARE_PUBLIC(QQuickFontListModel)
@@ -202,35 +206,43 @@ bool QQuickFontListModel::proportionalFonts() const
return d->options->testOption(QFontDialogOptions::ProportionalFonts);
}
-QJSValue QQuickFontListModel::get(int idx) const
+QQmlV4Handle QQuickFontListModel::get(int idx) const
{
Q_D(const QQuickFontListModel);
- QQmlEngine *engine = qmlContext(this)->engine();
-
if (idx < 0 || idx >= count())
- return engine->newObject();
+ return QQmlV4Handle(Value::undefinedValue());
- 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());
+ 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 result;
+ return QQmlV4Handle(Value::fromObject(o));
}
-QJSValue QQuickFontListModel::pointSizes()
+QQmlV4Handle QQuickFontListModel::pointSizes()
{
QQmlEngine *engine = qmlContext(this)->engine();
+ QV8Engine *v8engine = QQmlEnginePrivate::getV8Engine(engine);
+ ExecutionEngine *v4engine = QV8Engine::getV4(v8engine);
+ Scope scope(v4engine);
QList<int> pss = QFontDatabase::standardSizes();
int size = pss.size();
- QJSValue result = engine->newArray(size);
+ Scoped<QV4::ArrayObject> a(scope, v4engine->newArrayObject());
+ a->arrayReserve(size);
+ a->arrayDataLen = size;
for (int i = 0; i < size; ++i)
- result.setProperty(i, pss.at(i));
+ a->arrayData[i].value = Value::fromInt32(pss.at(i));
+ a->setArrayLengthUnchecked(size);
- return result;
+ return QQmlV4Handle(ScopedValue(scope, a.asReturnedValue()));
}
void QQuickFontListModel::classBegin()
diff --git a/src/imports/dialogs-private/qquickfontlistmodel_p.h b/src/imports/dialogs-private/qquickfontlistmodel_p.h
index 4f86bc779b..3e2e7f7132 100644
--- a/src/imports/dialogs-private/qquickfontlistmodel_p.h
+++ b/src/imports/dialogs-private/qquickfontlistmodel_p.h
@@ -43,10 +43,10 @@
#define QQUICKFONTLISTMODEL_P_H
#include <QtCore/qstringlist.h>
-#include <QtCore/QAbstractListModel>
+#include <QtCore/qabstractitemmodel.h>
#include <QtGui/qpa/qplatformdialoghelper.h>
#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qjsvalue.h>
+#include <private/qv8engine_p.h>
QT_BEGIN_NAMESPACE
@@ -90,8 +90,8 @@ public:
bool monospacedFonts() const;
bool proportionalFonts() const;
- Q_INVOKABLE QJSValue get(int index) const;
- Q_INVOKABLE QJSValue pointSizes();
+ Q_INVOKABLE QQmlV4Handle get(int index) const;
+ Q_INVOKABLE QQmlV4Handle pointSizes();
virtual void classBegin();
virtual void componentComplete();
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()
diff --git a/src/imports/dialogs-private/qquickwritingsystemlistmodel_p.h b/src/imports/dialogs-private/qquickwritingsystemlistmodel_p.h
index 120dd8a6f2..31058bbf78 100644
--- a/src/imports/dialogs-private/qquickwritingsystemlistmodel_p.h
+++ b/src/imports/dialogs-private/qquickwritingsystemlistmodel_p.h
@@ -43,9 +43,9 @@
#define QQUICKWRITINGSYSTEMLISTMODEL_P_H
#include <QtCore/qstringlist.h>
-#include <QtCore/QAbstractListModel>
+#include <QtCore/qabstractitemmodel.h>
#include <QtQml/qqmlparserstatus.h>
-#include <QtQml/qjsvalue.h>
+#include <private/qv8engine_p.h>
QT_BEGIN_NAMESPACE
@@ -79,7 +79,7 @@ public:
QStringList writingSystems() const;
- Q_INVOKABLE QJSValue get(int index) const;
+ Q_INVOKABLE QQmlV4Handle get(int index) const;
virtual void classBegin();
virtual void componentComplete();