summaryrefslogtreecommitdiffstats
path: root/src/dialogs/Private/qquickfontlistmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/Private/qquickfontlistmodel.cpp')
-rw-r--r--src/dialogs/Private/qquickfontlistmodel.cpp49
1 files changed, 17 insertions, 32 deletions
diff --git a/src/dialogs/Private/qquickfontlistmodel.cpp b/src/dialogs/Private/qquickfontlistmodel.cpp
index e3601f203..7e2ba5a97 100644
--- a/src/dialogs/Private/qquickfontlistmodel.cpp
+++ b/src/dialogs/Private/qquickfontlistmodel.cpp
@@ -42,16 +42,11 @@
#include "qquickfontlistmodel_p.h"
#include <QtGui/qfontdatabase.h>
#include <QtQml/qqmlcontext.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>
+#include <QtQml/qqml.h>
+#include <QtQml/qqmlengine.h>
QT_BEGIN_NAMESPACE
-using namespace QV4;
-
class QQuickFontListModelPrivate
{
Q_DECLARE_PUBLIC(QQuickFontListModel)
@@ -206,45 +201,35 @@ bool QQuickFontListModel::proportionalFonts() const
return d->options->testOption(QFontDialogOptions::ProportionalFonts);
}
-QQmlV4Handle QQuickFontListModel::get(int idx) const
+QJSValue QQuickFontListModel::get(int idx) const
{
Q_D(const QQuickFontListModel);
+ QJSEngine *engine = qmlEngine(this);
+
if (idx < 0 || idx >= count())
- return QQmlV4Handle(Encode::undefined());
-
- QQmlEngine *engine = qmlContext(this)->engine();
- QV8Engine *v8engine = QQmlEnginePrivate::getV8Engine(engine);
- ExecutionEngine *v4engine = QV8Engine::getV4(v8engine);
- Scope scope(v4engine);
- ScopedObject o(scope, v4engine->newObject());
- ScopedString s(scope);
- for (int ii = 0; ii < d->roleNames.keys().count(); ++ii) {
- Property *p = o->insertMember((s = v4engine->newIdentifier(d->roleNames[Qt::UserRole + ii + 1])), PropertyAttributes());
- p->value = v8engine->fromVariant(data(index(idx, 0), Qt::UserRole + ii + 1));
- }
+ 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(o);
+ return result;
}
-QQmlV4Handle QQuickFontListModel::pointSizes()
+QJSValue QQuickFontListModel::pointSizes()
{
- QQmlEngine *engine = qmlContext(this)->engine();
- QV8Engine *v8engine = QQmlEnginePrivate::getV8Engine(engine);
- ExecutionEngine *v4engine = QV8Engine::getV4(v8engine);
- Scope scope(v4engine);
+ QJSEngine *engine = qmlEngine(this);
QList<int> pss = QFontDatabase::standardSizes();
int size = pss.size();
- Scoped<QV4::ArrayObject> a(scope, v4engine->newArrayObject());
- a->arrayReserve(size);
- a->arrayData.length = size;
+ QJSValue result = engine->newArray(size);
for (int i = 0; i < size; ++i)
- a->arrayData.data[i].value = Primitive::fromInt32(pss.at(i));
- a->setArrayLengthUnchecked(size);
+ result.setProperty(i, pss.at(i));
- return QQmlV4Handle(ScopedValue(scope, a.asReturnedValue()));
+ return result;
}
void QQuickFontListModel::classBegin()