QScriptValue ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { if (object) { QScriptValue value = newQObject(object); globalObject().setProperty(name, value); return value; } return QScriptValue::NullValue; }
void SmsGatewayQuery::process(const QString &number) { auto engine = m_smsScriptsManager->engine(); auto jsGatewayQueryObject = engine->evaluate("new GatewayQuery()"); auto jsGetGateway = jsGatewayQueryObject.property("getGateway"); QScriptValueList arguments; arguments.append(number); arguments.append(engine->newQObject(this)); jsGetGateway.call(jsGatewayQueryObject, arguments); }
void http_script_engine::initialize_default() { QScriptValue global_object = globalObject(); global_object.setProperty("load",newFunction(loadScripts, 1)); post_data_list_class *pdlc = new post_data_list_class(this); global_object.setProperty("post_data_list", pdlc->constructor()); setDefaultPrototype(qMetaTypeId<http_data_list*>(), pdlc->newInstance()); global_object.setProperty("code_tool", newQObject(_code_tool)); }
QScriptValue Env::loadMLScriptEnv( MeshDocument& md,PluginManager& pm ) { QString code; MeshDocumentSI* mi = new MeshDocumentSI(&md); QScriptValue val = newQObject(mi); globalObject().setProperty(ScriptAdapterGenerator::meshDocVarName(),val); JavaScriptLanguage lang; code += lang.getExternalLibrariesCode(); QScriptValue applyFun = newFunction(PluginInterfaceApplyXML, &pm); globalObject().setProperty("_applyFilter", applyFun); //QScriptValue res = env.evaluate(QString(PM.pluginsCode())); code += pm.pluginsCode(); QScriptValue res = evaluate(code); return res; }
QmlThreadEngine::QmlThreadEngine(QObject *parent): QJSEngine(parent) { globalObject().setProperty("console", newQObject(new Console(this))); globalObject() .property("console") .setProperty("log", evaluate("function(){ \n" " console.print('QmlThread:') \n" " for(var iter in arguments) { \n" " console.print(arguments[iter]+' ');\n" " } \n" " console.print('\\n') \n" " }\n")); connect( this, SIGNAL(registerHelper(QString,QmlThreadHelper*)), this, SLOT(onRegisterHelper(QString,QmlThreadHelper*)) ); }
QDeclarativeObjectScriptClass::Value QDeclarativeObjectScriptClass::property(QObject *obj, const Identifier &name) { QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine); if (name == m_destroyId.identifier) return Value(scriptEngine, m_destroy); else if (name == m_toStringId.identifier) return Value(scriptEngine, m_toString); if (lastData && !lastData->isValid()) return Value(); Q_ASSERT(obj); QDeclarativeEnginePrivate *enginePriv = QDeclarativeEnginePrivate::get(engine); if (lastTNData) { if (lastTNData->type) return Value(scriptEngine, enginePriv->typeNameClass->newObject(obj, lastTNData->type)); else return Value(scriptEngine, enginePriv->typeNameClass->newObject(obj, lastTNData->typeNamespace)); } else if (lastData->flags & QDeclarativePropertyCache::Data::IsFunction) { if (lastData->flags & QDeclarativePropertyCache::Data::IsVMEFunction) { return Value(scriptEngine, ((QDeclarativeVMEMetaObject *)(obj->metaObject()))->vmeMethod(lastData->coreIndex)); } else { // Uncomment to use QtScript method call logic // QScriptValue sobj = scriptEngine->newQObject(obj); // return Value(scriptEngine, sobj.property(toString(name))); return Value(scriptEngine, methods.newMethod(obj, lastData)); } } else { if (enginePriv->captureProperties && !(lastData->flags & QDeclarativePropertyCache::Data::IsConstant)) { enginePriv->capturedProperties << QDeclarativeEnginePrivate::CapturedProperty(obj, lastData->coreIndex, lastData->notifyIndex); } if (QDeclarativeValueTypeFactory::isValueType((uint)lastData->propType)) { QDeclarativeValueType *valueType = enginePriv->valueTypes[lastData->propType]; if (valueType) return Value(scriptEngine, enginePriv->valueTypeClass->newObject(obj, lastData->coreIndex, valueType)); } if (lastData->flags & QDeclarativePropertyCache::Data::IsQList) { return Value(scriptEngine, enginePriv->listClass->newList(obj, lastData->coreIndex, lastData->propType)); } else if (lastData->flags & QDeclarativePropertyCache::Data::IsQObjectDerived) { QObject *rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, newQObject(rv, lastData->propType)); } else if (lastData->flags & QDeclarativePropertyCache::Data::IsQScriptValue) { QScriptValue rv = scriptEngine->nullValue(); void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::QReal) { qreal rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::Int) { int rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::Bool) { bool rv = false; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::QString) { QString rv; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::UInt) { uint rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::Float) { float rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else if (lastData->propType == QMetaType::Double) { double rv = 0; void *args[] = { &rv, 0 }; QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args); return Value(scriptEngine, rv); } else { QVariant var = obj->metaObject()->property(lastData->coreIndex).read(obj); return Value(scriptEngine, enginePriv->scriptValueFromVariant(var)); } } }