summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qmlengine.cpp')
-rw-r--r--src/declarative/qml/qmlengine.cpp46
1 files changed, 11 insertions, 35 deletions
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp
index 8921e0c..d645fb3 100644
--- a/src/declarative/qml/qmlengine.cpp
+++ b/src/declarative/qml/qmlengine.cpp
@@ -82,14 +82,6 @@ DEFINE_BOOL_CONFIG_OPTION(qmlDebugger, QML_DEBUGGER)
QML_DEFINE_TYPE(QObject,Object)
-static QScriptValue qmlMetaProperty_emit(QScriptContext *ctx, QScriptEngine *engine)
-{
- QmlMetaProperty mp = qscriptvalue_cast<QmlMetaProperty>(ctx->thisObject());
- if (mp.type() & QmlMetaProperty::Signal)
- mp.emitSignal();
- return engine->nullValue();
-}
-
struct StaticQtMetaObject : public QObject
{
static const QMetaObject *get()
@@ -143,11 +135,6 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e)
: rootContext(0), currentBindContext(0), currentExpression(0), q(e),
rootComponent(0), networkAccessManager(0), typeManager(e), uniqueId(1)
{
- QScriptValue proto = scriptEngine.newObject();
- proto.setProperty(QLatin1String("emit"),
- scriptEngine.newFunction(qmlMetaProperty_emit));
- scriptEngine.setDefaultPrototype(qMetaTypeId<QmlMetaProperty>(), proto);
-
QScriptValue qtObject = scriptEngine.newQMetaObject(StaticQtMetaObject::get());
scriptEngine.globalObject().setProperty(QLatin1String("Qt"), qtObject);
}
@@ -278,22 +265,18 @@ QScriptValue QmlEnginePrivate::propertyObject(const QScriptString &propName,
if (!prop.isValid())
return QScriptValue();
- if (prop.type() & QmlMetaProperty::Signal) {
- return scriptEngine.newVariant(qVariantFromValue(prop));
+ QVariant var = prop.read();
+ if (prop.needsChangedNotifier())
+ capturedProperties << CapturedProperty(prop);
+ QObject *varobj = QmlMetaType::toQObject(var);
+ if (!varobj)
+ varobj = qvariant_cast<QObject *>(var);
+ if (varobj) {
+ return scriptEngine.newObject(objectClass, scriptEngine.newVariant(QVariant::fromValue(varobj)));
} else {
- QVariant var = prop.read();
- if (prop.needsChangedNotifier())
- capturedProperties << CapturedProperty(prop);
- QObject *varobj = QmlMetaType::toQObject(var);
- if (!varobj)
- varobj = qvariant_cast<QObject *>(var);
- if (varobj) {
- return scriptEngine.newObject(objectClass, scriptEngine.newVariant(QVariant::fromValue(varobj)));
- } else {
- if (var.type() == QVariant::Bool)
- return QScriptValue(&scriptEngine, var.toBool());
- return scriptEngine.newVariant(var);
- }
+ if (var.type() == QVariant::Bool)
+ return QScriptValue(&scriptEngine, var.toBool());
+ return scriptEngine.newVariant(var);
}
}
@@ -358,13 +341,6 @@ bool QmlEnginePrivate::fetchCache(QmlBasicScriptNodeCache &cache, const QString
cache.core = prop.coreIndex();
return true;
- } else if (prop.type() & QmlMetaProperty::Signal) {
-
- cache.object = obj;
- cache.type = QmlBasicScriptNodeCache::Signal;
- cache.core = prop.coreIndex();
- return true;
-
}
return false;