void setupQWebSecurityOriginProto(QScriptEngine *engine)
{
  //qScriptRegisterMetaType(engine, QWebSecurityOriginToScriptValue, QWebSecurityOriginFromScriptValue);
  qScriptRegisterMetaType(engine, QWebSecurityOriginPointerToScriptValue, QWebSecurityOriginPointerFromScriptValue);
  QScriptValue::PropertyFlags permanent = QScriptValue::ReadOnly | QScriptValue::Undeletable;

  // TODO:
  //qScriptRegisterMetaType(engine, QListQWebSecurityOriginToScriptValue, QListQWebSecurityOriginFromScriptValue);

  QScriptValue proto = engine->newQObject(new QWebSecurityOriginProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QWebSecurityOrigin*>(), proto);
  //engine->setDefaultPrototype(qMetaTypeId<QWebSecurityOrigin>(),  proto);

  QScriptValue constructor = engine->newFunction(constructQWebSecurityOrigin, proto);
  engine->globalObject().setProperty("QWebSecurityOrigin", constructor);

  qScriptRegisterMetaType(engine, SubdomainSettingToScriptValue, SubdomainSettingFromScriptValue);
  constructor.setProperty("AllowSubdomains", QScriptValue(engine, QWebSecurityOrigin::AllowSubdomains), permanent);
  constructor.setProperty("DisallowSubdomains", QScriptValue(engine, QWebSecurityOrigin::DisallowSubdomains), permanent);

  QScriptValue addLocalScheme = engine->newFunction(addLocalSchemeForJS);
  constructor.setProperty("addLocalScheme", addLocalScheme);
  //QScriptValue allOrigins = engine->newFunction(allOriginsForJS);
  //constructor.setProperty("allOrigins", allOrigins);
  QScriptValue localSchemes = engine->newFunction(localSchemesForJS);
  constructor.setProperty("localSchemes", localSchemes);
  QScriptValue removeLocalScheme = engine->newFunction(removeLocalSchemeForJS);
  constructor.setProperty("removeLocalScheme", removeLocalScheme);
}
Esempio n. 2
0
void setupQDnsLookupProto(QScriptEngine *engine)
{
  QScriptValue::PropertyFlags permanent = QScriptValue::ReadOnly | QScriptValue::Undeletable;

  QScriptValue proto = engine->newQObject(new QDnsLookupProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QDnsLookup*>(), proto);
  //engine->setDefaultPrototype(qMetaTypeId<QDnsLookup>(),  proto);

  QScriptValue constructor = engine->newFunction(constructQDnsLookup, proto);
  engine->globalObject().setProperty("QDnsLookup",  constructor);

  qScriptRegisterMetaType(engine, DnsLookupErrorToScriptValue, DnsLookupErrorFromScriptValue);
  constructor.setProperty("NoError", QScriptValue(engine, QDnsLookup::NoError), permanent);
  constructor.setProperty("ResolverError", QScriptValue(engine, QDnsLookup::ResolverError), permanent);
  constructor.setProperty("OperationCancelledError", QScriptValue(engine, QDnsLookup::OperationCancelledError), permanent);
  constructor.setProperty("InvalidRequestError", QScriptValue(engine, QDnsLookup::InvalidRequestError), permanent);
  constructor.setProperty("InvalidReplyError", QScriptValue(engine, QDnsLookup::InvalidReplyError), permanent);
  constructor.setProperty("ServerFailureError", QScriptValue(engine, QDnsLookup::ServerFailureError), permanent);
  constructor.setProperty("ServerRefusedError", QScriptValue(engine, QDnsLookup::ServerRefusedError), permanent);
  constructor.setProperty("NotFoundError", QScriptValue(engine, QDnsLookup::NotFoundError), permanent);

  qScriptRegisterMetaType(engine, DnsLookupTypeToScriptValue, DnsLookupTypeFromScriptValue);
  constructor.setProperty("A", QScriptValue(engine, QDnsLookup::A), permanent);
  constructor.setProperty("AAAA", QScriptValue(engine, QDnsLookup::AAAA), permanent);
  constructor.setProperty("ANY", QScriptValue(engine, QDnsLookup::ANY), permanent);
  constructor.setProperty("CNAME", QScriptValue(engine, QDnsLookup::CNAME), permanent);
  constructor.setProperty("MX", QScriptValue(engine, QDnsLookup::MX), permanent);
  constructor.setProperty("NS", QScriptValue(engine, QDnsLookup::NS), permanent);
  constructor.setProperty("PTR", QScriptValue(engine, QDnsLookup::PTR), permanent);
  constructor.setProperty("SRV", QScriptValue(engine, QDnsLookup::SRV), permanent);
  constructor.setProperty("TXT", QScriptValue(engine, QDnsLookup::TXT), permanent);
}
Esempio n. 3
0
void ExposeCoreTypes(QScriptEngine *engine)
{
    qScriptRegisterMetaType(engine, toScriptValueColor, fromScriptValueColor);
    qScriptRegisterMetaType(engine, toScriptValueAssetReference, fromScriptValueAssetReference);
    qScriptRegisterMetaType(engine, toScriptValueAssetReferenceList, fromScriptValueAssetReferenceList);
    qScriptRegisterMetaType(engine, toScriptValueEntityReference, fromScriptValueEntityReference);

    qScriptRegisterMetaType<ComponentPtr>(engine, qScriptValueFromBoostSharedPtr, qScriptValueToBoostSharedPtr);

    qScriptRegisterMetaType<IAttribute*>(engine, toScriptValueIAttribute, fromScriptValueIAttribute);
    qScriptRegisterMetaType<ScenePtr>(engine, qScriptValueFromBoostSharedPtr, qScriptValueToBoostSharedPtr);
    qScriptRegisterMetaType<EntityPtr>(engine, qScriptValueFromBoostSharedPtr, qScriptValueToBoostSharedPtr);
    qScriptRegisterMetaType<ComponentPtr>(engine, qScriptValueFromBoostSharedPtr, qScriptValueToBoostSharedPtr);
    qScriptRegisterMetaType<QList<Entity*> >(engine, toScriptValueEntityList, fromScriptValueEntityList);
    qScriptRegisterMetaType<QList<QObject*> >(engine, toScriptValueQObjectList, fromScriptValueQObjectList);
    qScriptRegisterMetaType<EntityList>(engine, toScriptValueEntityStdList, fromScriptValueEntityStdList);
    qScriptRegisterMetaType<Scene::EntityMap>(engine, toScriptValueEntityMap, fromScriptValueEntityMap);
    qScriptRegisterMetaType<Entity::ComponentMap>(engine, toScriptValueComponentMap, fromScriptValueComponentMap);
    qScriptRegisterMetaType<Entity::ComponentVector>(engine, toScriptValueComponentVector, fromScriptValueComponentVector);
    qScriptRegisterMetaType<std::string>(engine, toScriptValueStdString, fromScriptValueStdString);

    // Register constructors
    QScriptValue ctorColor = engine->newFunction(createColor);
    engine->globalObject().setProperty("Color", ctorColor);
    engine->globalObject().property("Color").setProperty("fromString", engine->newFunction(Color_prototype_FromString));
    QScriptValue ctorAssetReference = engine->newFunction(createAssetReference);
    engine->globalObject().setProperty("AssetReference", ctorAssetReference);
    QScriptValue ctorAssetReferenceList = engine->newFunction(createAssetReferenceList);
    engine->globalObject().setProperty("AssetReferenceList", ctorAssetReferenceList);
}
Esempio n. 4
0
Env::Env()
{
	qScriptRegisterSequenceMetaType< QVector<float> >(this);
	qScriptRegisterSequenceMetaType<Point3Vector>(this);
	qScriptRegisterSequenceMetaType<QVector<VCGVertexSI*> >(this);
	qScriptRegisterMetaType(this,MeshModelScriptInterfaceToScriptValue,MeshModelScriptInterfaceFromScriptValue);
	qScriptRegisterMetaType(this,VCGVertexScriptInterfaceToScriptValue,VCGVertexScriptInterfaceFromScriptValue);
	QScriptValue fun = newFunction(myprint, 1);	
	globalObject().setProperty("print", fun);

	QScriptValue addfun = newFunction(VCGPoint3SI_addV3, 2);	
	globalObject().setProperty("addV3", addfun);

	QScriptValue multfun = newFunction(VCGPoint3SI_multV3S, 2);	
	globalObject().setProperty("multV3S", multfun);
	
	QScriptValue envwrap_ctor = newFunction(EnvWrap_ctor);
	//eng->setDefaultPrototype(qMetaTypeId<EnvWrap>(), envwrap_ctor.property("prototype"));
	globalObject().setProperty("EnvWrap",envwrap_ctor);

	QScriptValue env_ctor = newFunction(Env_ctor);
	QScriptValue metaObject = newQMetaObject(&Env::staticMetaObject, env_ctor);
	globalObject().setProperty("Env", metaObject);

	QScriptValue point_ctor = newFunction(VCGPoint3ScriptInterface_ctor);
	//QScriptValue pointmetaObject = newQMetaObject(&VCGPoint3fSI::staticMetaObject, point_ctor);
	setDefaultPrototype(qMetaTypeId<VCGPoint3SI>(), point_ctor.property("prototype"));
	globalObject().setProperty("VCGPoint3", point_ctor);
	//qScriptRegisterMetaType(this,Point3fToScriptValue,Point3fFromScriptValue);
	QScriptValue shot_ctor = newFunction(ShotSI_ctor);
	globalObject().setProperty(MLXMLElNames::shotType, shot_ctor);
	QScriptValue shot_defctor = newFunction(ShotSI_defctor);
	globalObject().setProperty(MLXMLElNames::shotType + "DefCtor", shot_defctor);
}
void registerWrappers(QScriptEngine* engine )
{
    qScriptRegisterMetaType(engine, scriptValueFromPosition, PositionFromScriptValue );
    qScriptRegisterMetaType(engine, scriptValueFromQRect, QRectFromScriptValue );

    registerProtoType(QFileInfo, QFileInfoPrototype);
    registerProtoType(QDir,QDirPrototype);
}
void ControllerScriptingInterface::registerControllerTypes(QScriptEngine* engine) {
    qScriptRegisterSequenceMetaType<QVector<UserInputMapper::Action> >(engine);
    qScriptRegisterSequenceMetaType<QVector<UserInputMapper::InputChannel> >(engine);
    qScriptRegisterSequenceMetaType<QVector<UserInputMapper::InputPair> >(engine);
    qScriptRegisterMetaType(engine, actionToScriptValue, actionFromScriptValue);
    qScriptRegisterMetaType(engine, inputChannelToScriptValue, inputChannelFromScriptValue);
    qScriptRegisterMetaType(engine, inputToScriptValue, inputFromScriptValue);
    qScriptRegisterMetaType(engine, inputPairToScriptValue, inputPairFromScriptValue);
}
Esempio n. 7
0
void setupQMessageBox(QScriptEngine *engine)
{
  QScriptValue widget = engine->newObject();

  qScriptRegisterMetaType(engine, MessageBoxButtonRoletoScriptValue,
                          MessageBoxButtonRolefromScriptValue);
  widget.setProperty("InvalidRole",    QScriptValue(engine, QMessageBox::InvalidRole),    QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("AcceptRole",     QScriptValue(engine, QMessageBox::AcceptRole),     QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("RejectRole",     QScriptValue(engine, QMessageBox::RejectRole),     QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("DestructiveRole",QScriptValue(engine, QMessageBox::DestructiveRole),QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("ActionRole",     QScriptValue(engine, QMessageBox::ActionRole),     QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("HelpRole",       QScriptValue(engine, QMessageBox::HelpRole),       QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("YesRole",        QScriptValue(engine, QMessageBox::YesRole),        QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("NoRole",         QScriptValue(engine, QMessageBox::NoRole),         QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("ApplyRole",      QScriptValue(engine, QMessageBox::ApplyRole),      QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("ResetRole",      QScriptValue(engine, QMessageBox::ResetRole),      QScriptValue::ReadOnly | QScriptValue::Undeletable);

  qScriptRegisterMetaType(engine, MessageBoxIcontoScriptValue,
                          MessageBoxIconfromScriptValue);
  widget.setProperty("NoIcon",         QScriptValue(engine, QMessageBox::NoIcon),         QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Question",       QScriptValue(engine, QMessageBox::Question),       QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Information",    QScriptValue(engine, QMessageBox::Information),    QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Warning",        QScriptValue(engine, QMessageBox::Warning),        QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Critical",       QScriptValue(engine, QMessageBox::Critical),       QScriptValue::ReadOnly | QScriptValue::Undeletable);

  qScriptRegisterMetaType(engine, MessageBoxStandardButtontoScriptValue,
                          MessageBoxStandardButtonfromScriptValue);
  widget.setProperty("Ok",             QScriptValue(engine, QMessageBox::Ok),             QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Open",           QScriptValue(engine, QMessageBox::Open),           QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Save",           QScriptValue(engine, QMessageBox::Save),           QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Cancel",         QScriptValue(engine, QMessageBox::Cancel),         QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Close",          QScriptValue(engine, QMessageBox::Close),          QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Discard",        QScriptValue(engine, QMessageBox::Discard),        QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Apply",          QScriptValue(engine, QMessageBox::Apply),          QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Reset",          QScriptValue(engine, QMessageBox::Reset),          QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("RestoreDefaults",QScriptValue(engine, QMessageBox::RestoreDefaults),QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Help",           QScriptValue(engine, QMessageBox::Help),           QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("SaveAll",        QScriptValue(engine, QMessageBox::SaveAll),        QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Yes",            QScriptValue(engine, QMessageBox::Yes),            QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("YesToAll",       QScriptValue(engine, QMessageBox::YesToAll),       QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("No",             QScriptValue(engine, QMessageBox::No),             QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("NoToAll",        QScriptValue(engine, QMessageBox::NoToAll),        QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Abort",          QScriptValue(engine, QMessageBox::Abort),          QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Retry",          QScriptValue(engine, QMessageBox::Retry),          QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("Ignore",         QScriptValue(engine, QMessageBox::Ignore),         QScriptValue::ReadOnly | QScriptValue::Undeletable);
  widget.setProperty("NoButton",       QScriptValue(engine, QMessageBox::NoButton),       QScriptValue::ReadOnly | QScriptValue::Undeletable);

  engine->globalObject().setProperty("QMessageBox", widget, QScriptValue::ReadOnly | QScriptValue::Undeletable);

  widget.setProperty("about",      engine->newFunction(scriptAbout));
  widget.setProperty("aboutQt",    engine->newFunction(scriptAboutQt));
  widget.setProperty("critical",   engine->newFunction(scriptCritical));
  widget.setProperty("information",engine->newFunction(scriptInformation));
  widget.setProperty("question",   engine->newFunction(scriptQuestion));
  widget.setProperty("warning",    engine->newFunction(scriptWarning));
}
Esempio n. 8
0
bool KateScript::load()
{
  if(m_loaded)
    return m_loadSuccessful;

  m_loaded = true;
  m_loadSuccessful = false; // here set to false, and at end of function to true

  // read the script file into memory
  QString source;
  if (m_inputType == InputURL) {
    if (!Kate::Script::readFile(m_url, source)) {
      return false;
    }
  } else source = m_script;

  // create script engine, register meta types
  m_engine = new QScriptEngine();
  qScriptRegisterMetaType (m_engine, cursorToScriptValue, cursorFromScriptValue);
  qScriptRegisterMetaType (m_engine, rangeToScriptValue, rangeFromScriptValue);

  // export read & require function and add the require guard object
  m_engine->globalObject().setProperty("read", m_engine->newFunction(Kate::Script::read));
  m_engine->globalObject().setProperty("require", m_engine->newFunction(Kate::Script::require));
  m_engine->globalObject().setProperty("require_guard", m_engine->newObject());
  
  // export debug function
  m_engine->globalObject().setProperty("debug", m_engine->newFunction(Kate::Script::debug));

  // export translation functions
  m_engine->globalObject().setProperty("i18n", m_engine->newFunction(Kate::Script::i18n));
  m_engine->globalObject().setProperty("i18nc", m_engine->newFunction(Kate::Script::i18nc));
  m_engine->globalObject().setProperty("i18ncp", m_engine->newFunction(Kate::Script::i18ncp));
  m_engine->globalObject().setProperty("i18np", m_engine->newFunction(Kate::Script::i18np));

  // register scripts itself
  QScriptValue result = m_engine->evaluate(source, m_url);
  if (hasException(result, m_url))
    return false;

  // AFTER SCRIPT: set the view/document objects as necessary
  m_engine->globalObject().setProperty("document", m_engine->newQObject(m_document = new KateScriptDocument()));
  m_engine->globalObject().setProperty("view", m_engine->newQObject(m_view = new KateScriptView()));

  // yip yip!
  m_loadSuccessful = true;

  // load i18n catalog if available
  if (!generalHeader().catalog().isEmpty()) {
    kDebug() << "loading i18n catalog" << generalHeader().catalog();
    KGlobal::locale()->insertCatalog(generalHeader().catalog());
  }
  return true;
}
Esempio n. 9
0
void setupQActionProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QActiontoScriptValue,     QActionfromScriptValue);
  qScriptRegisterMetaType(engine, QActionListtoScriptValue, QActionListfromScriptValue);

  QScriptValue proto = engine->newQObject(new QActionProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QAction*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQAction,
                                                 proto);
  engine->globalObject().setProperty("QAction", constructor);
}
Esempio n. 10
0
ScriptMessage::ScriptMessage(QScriptEngine *engine) : QScriptClass(engine)
{
	debug() << Q_FUNC_INFO;
	m_incoming = engine->toStringHandle(QLatin1String("incoming"));
	ScriptEngineData::data(engine)->message = this;
	qScriptRegisterMetaType(engine, messageToScriptValue, messageFromScriptValue);
	qScriptRegisterMetaType(engine, messagePtrToScriptValue, messagePtrFromScriptValue);
	qRegisterMetaType<qutim_sdk_0_3::Message>("qutim_sdk_0_3::Message&");
	m_prototype = engine->newObject(this);
	QScriptValue ctor = engine->newFunction(createMessage);
	engine->globalObject().setProperty(name(), ctor);
}
Esempio n. 11
0
ScriptEnvironment::ScriptEnvironment(KileInfo *kileInfo,
   KileScriptView *scriptView, KileScriptDocument *scriptDocument,
   KileScriptObject *scriptObject, const QString &pluginCode)
   : m_kileInfo(kileInfo), m_scriptView(scriptView), m_scriptDocument(scriptDocument),
     m_kileScriptObject(scriptObject), m_enginePluginCode(pluginCode)
{

	KILE_DEBUG() << "create ScriptEnvironment";
	m_engine = new QScriptEngine();
	qScriptRegisterMetaType(m_engine, cursorToScriptValue, cursorFromScriptValue);
	qScriptRegisterMetaType(m_engine, rangeToScriptValue, rangeFromScriptValue);
}
Esempio n. 12
0
void registerMetaTypes(QScriptEngine* engine) {
    qScriptRegisterMetaType(engine, vec4toScriptValue, vec4FromScriptValue);
    qScriptRegisterMetaType(engine, vec3toScriptValue, vec3FromScriptValue);
    qScriptRegisterMetaType(engine, vec2toScriptValue, vec2FromScriptValue);
    qScriptRegisterMetaType(engine, quatToScriptValue, quatFromScriptValue);
    qScriptRegisterMetaType(engine, xColorToScriptValue, xColorFromScriptValue);
    qScriptRegisterMetaType(engine, qColorToScriptValue, qColorFromScriptValue);
    qScriptRegisterMetaType(engine, pickRayToScriptValue, pickRayFromScriptValue);
    qScriptRegisterMetaType(engine, collisionToScriptValue, collisionFromScriptValue);
    qScriptRegisterMetaType(engine, quuidToScriptValue, quuidFromScriptValue);
}
Esempio n. 13
0
QScriptValue register_Transform_prototype(QScriptEngine *engine)
{
    QScriptValue proto = engine->newObject();
    proto.setProperty("SetPos", engine->newFunction(Transform_SetPos_selector, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetPos", engine->newFunction(Transform_SetPos_selector, 3), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetRotation", engine->newFunction(Transform_SetRotation_float_float_float, 3), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetScale", engine->newFunction(Transform_SetScale_selector, 3), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetScale", engine->newFunction(Transform_SetScale_selector, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("ToFloat3x4", engine->newFunction(Transform_ToFloat3x4_const, 0), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("ToFloat4x4", engine->newFunction(Transform_ToFloat4x4_const, 0), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("FromFloat3x4", engine->newFunction(Transform_FromFloat3x4_float3x4, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("FromFloat4x4", engine->newFunction(Transform_FromFloat4x4_float4x4, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetRotationAndScale", engine->newFunction(Transform_SetRotationAndScale_float3x3, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("SetOrientation", engine->newFunction(Transform_SetOrientation_selector, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("Orientation3x3", engine->newFunction(Transform_Orientation3x3_const, 0), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("Orientation", engine->newFunction(Transform_Orientation_const, 0), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("Mul", engine->newFunction(Transform_Mul_Transform_const, 1), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("toString", engine->newFunction(Transform_toString_const, 0), QScriptValue::Undeletable | QScriptValue::ReadOnly);
    proto.setProperty("metaTypeId", engine->toScriptValue<qint32>((qint32)qMetaTypeId<Transform>()));
    engine->setDefaultPrototype(qMetaTypeId<Transform>(), proto);
    engine->setDefaultPrototype(qMetaTypeId<Transform*>(), proto);
    qScriptRegisterMetaType(engine, ToScriptValue_Transform, FromScriptValue_Transform, proto);

    QScriptValue ctor = engine->newFunction(Transform_ctor, proto, 3);
    engine->globalObject().setProperty("Transform", ctor, QScriptValue::Undeletable | QScriptValue::ReadOnly);

    return ctor;
}
Esempio n. 14
0
void STexture::installInEngine(QScriptEngine *engine, QGLWidget *context, unsigned long frameTexture)
{
    qScriptRegisterMetaType(engine, stextureToScriptValue, stextureFromScriptValue);
    STexture *frametex = new STexture(context, frameTexture, false);
    QScriptValue s = engine->newQObject(frametex, QScriptEngine::ScriptOwnership);
    engine->globalObject().setProperty("inputFrame", s, QScriptValue::ReadOnly);
}
Esempio n. 15
0
void setupUsernameCluster(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, UsernameClustertoScriptValue, UsernameClusterfromScriptValue);

  QScriptValue widget = engine->newFunction(constructUsernameCluster);

  engine->globalObject().setProperty("UsernameCluster", widget, QScriptValue::ReadOnly | QScriptValue::Undeletable);
}
void PERPScriptExtensionPlugin::initialize ( const QString & key, QScriptEngine * engine )
{
	if ( key == KEY_PERP ) {
		QScriptValue impositionValue = engine->scriptValueFromQMetaObject<Imposition>();
		engine->globalObject().setProperty("Imposition", impositionValue);
		qScriptRegisterMetaType(engine, Imposition::toScriptValueSharedPointer, Imposition::fromScriptValueSharedPointer);
	}
}
Esempio n. 17
0
void setupQIODeviceProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QIODevicetoScriptValue, QIODevicefromScriptValue);

  QScriptValue iodev = engine->newObject();
  engine->globalObject().setProperty("QIODevice",  iodev, QScriptValue::ReadOnly | QScriptValue::Undeletable);

  qScriptRegisterMetaType(engine, OpenModeToScriptValue, OpenModeFromScriptValue);
  qScriptRegisterMetaType(engine, OpenModeFlagToScriptValue, OpenModeFlagFromScriptValue);
  iodev.setProperty("NotOpen",    QScriptValue(engine, QIODevice::NotOpen),    ENUMPROPFLAGS);
  iodev.setProperty("ReadOnly",   QScriptValue(engine, QIODevice::ReadOnly),   ENUMPROPFLAGS);
  iodev.setProperty("WriteOnly",  QScriptValue(engine, QIODevice::WriteOnly),  ENUMPROPFLAGS);
  iodev.setProperty("ReadWrite",  QScriptValue(engine, QIODevice::ReadWrite),  ENUMPROPFLAGS);
  iodev.setProperty("Append",     QScriptValue(engine, QIODevice::Append),     ENUMPROPFLAGS);
  iodev.setProperty("Truncate",   QScriptValue(engine, QIODevice::Truncate),   ENUMPROPFLAGS);
  iodev.setProperty("Text",       QScriptValue(engine, QIODevice::Text),       ENUMPROPFLAGS);
  iodev.setProperty("Unbuffered", QScriptValue(engine, QIODevice::Unbuffered), ENUMPROPFLAGS);
}
Esempio n. 18
0
void setupGuiErrorCheck(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QListGuiErrorChecktoScriptValue, QListGuiErrorCheckfromScriptValue);

  QScriptValue constructor = engine->newFunction(constructGuiErrorCheck);
  engine->globalObject().setProperty("GuiErrorCheck", constructor, CTORPROPFLAGS);

  constructor.setProperty("reportErrors", engine->newFunction(guierrorcheck_reporterrors), STATICPROPFLAGS);
}
Esempio n. 19
0
void setupQLayoutItemProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QLayoutItemtoScriptValue, QLayoutItemfromScriptValue);

  QScriptValue proto = engine->newQObject(new QLayoutItemProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QLayoutItem*>(), proto);
  if (DEBUG)
    qDebug("setupQLayoutItemProto() returning");
}
Esempio n. 20
0
void ScriptEngine::init() {
    if (_isInitialized) {
        return; // only initialize once
    }

    _isInitialized = true;

    auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>();
    entityScriptingInterface->init();

    // register various meta-types
    registerMetaTypes(this);
    registerMIDIMetaTypes(this);
    registerEventTypes(this);
    registerMenuItemProperties(this);
    registerAnimationTypes(this);
    registerAvatarTypes(this);
    registerAudioMetaTypes(this);

    if (_controllerScriptingInterface) {
        _controllerScriptingInterface->registerControllerTypes(this);
    }

    qScriptRegisterMetaType(this, EntityItemPropertiesToScriptValue, EntityItemPropertiesFromScriptValueHonorReadOnly);
    qScriptRegisterMetaType(this, EntityItemIDtoScriptValue, EntityItemIDfromScriptValue);
    qScriptRegisterMetaType(this, RayToEntityIntersectionResultToScriptValue, RayToEntityIntersectionResultFromScriptValue);
    qScriptRegisterSequenceMetaType<QVector<QUuid>>(this);
    qScriptRegisterSequenceMetaType<QVector<EntityItemID>>(this);

    qScriptRegisterSequenceMetaType<QVector<glm::vec2> >(this);
    qScriptRegisterSequenceMetaType<QVector<glm::quat> >(this);
    qScriptRegisterSequenceMetaType<QVector<QString> >(this);

    QScriptValue xmlHttpRequestConstructorValue = newFunction(XMLHttpRequestClass::constructor);
    globalObject().setProperty("XMLHttpRequest", xmlHttpRequestConstructorValue);

    QScriptValue printConstructorValue = newFunction(debugPrint);
    globalObject().setProperty("print", printConstructorValue);

    QScriptValue audioEffectOptionsConstructorValue = newFunction(AudioEffectOptions::constructor);
    globalObject().setProperty("AudioEffectOptions", audioEffectOptionsConstructorValue);

    qScriptRegisterMetaType(this, injectorToScriptValue, injectorFromScriptValue);
    qScriptRegisterMetaType(this, inputControllerToScriptValue, inputControllerFromScriptValue);
    qScriptRegisterMetaType(this, avatarDataToScriptValue, avatarDataFromScriptValue);
    qScriptRegisterMetaType(this, animationDetailsToScriptValue, animationDetailsFromScriptValue);

    registerGlobalObject("Script", this);
    registerGlobalObject("Audio", &AudioScriptingInterface::getInstance());
    registerGlobalObject("Controller", _controllerScriptingInterface);
    registerGlobalObject("Entities", entityScriptingInterface.data());
    registerGlobalObject("Quat", &_quatLibrary);
    registerGlobalObject("Vec3", &_vec3Library);
    registerGlobalObject("Uuid", &_uuidLibrary);
    registerGlobalObject("AnimationCache", DependencyManager::get<AnimationCache>().data());

    // constants
    globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE)));
}
StelScriptMgr::StelScriptMgr(QObject *parent): QObject(parent)
{
	connect(&StelApp::getInstance(), SIGNAL(aboutToQuit()), this, SLOT(stopScript()), Qt::DirectConnection);
	// Scripting images
	ScreenImageMgr* scriptImages = new ScreenImageMgr();
	scriptImages->init();
	StelApp::getInstance().getModuleMgr().registerModule(scriptImages);

	// Allow Vec3f managment in scripts
	qScriptRegisterMetaType(&engine, vec3fToScriptValue, vec3fFromScriptValue);
	// Constructor
	QScriptValue ctor = engine.newFunction(createVec3f);
	engine.globalObject().setProperty("Vec3f", ctor);

	// Add the core object to access methods related to core
	mainAPI = new StelMainScriptAPI(this);
	QScriptValue objectValue = engine.newQObject(mainAPI);
	engine.globalObject().setProperty("core", objectValue);

	engine.evaluate("function mywait__(sleepDurationSec) {"
			"if (sleepDurationSec<0) return;"
			"var date = new Date();"
			"var curDate = null;"
			"do {curDate = new Date();}"
			"while(curDate-date < sleepDurationSec*1000/scriptRateReadOnly);}");
	engine.evaluate("core['wait'] = mywait__;");

	engine.evaluate("function mywaitFor__(dt, spec) {"
			"if (!spec) spec=\"utc\";"
			"var deltaJD = core.jdFromDateString(dt, spec) - core.getJDay();"
			"var timeSpeed = core.getTimeRate();"
			"if (timeSpeed == 0.) {core.debug(\"waitFor called with no time passing - would be infinite. not waiting!\"); return;}"
			"var date = new Date();"
			"var curDate = null;"
			"do {curDate = new Date();}"
			"while(curDate-date < deltaJD*86400000/timeSpeed);}");

	engine.evaluate("core['waitFor'] = mywaitFor__;");
	
	// Add other classes which we want to be directly accessible from scripts
	if(StelSkyLayerMgr* smgr = GETSTELMODULE(StelSkyLayerMgr))
		objectValue = engine.newQObject(smgr);

	// For accessing star scale, twinkle etc.
	objectValue = engine.newQObject(StelApp::getInstance().getCore()->getSkyDrawer());
	engine.globalObject().setProperty("StelSkyDrawer", objectValue);
	
	setScriptRate(1.0);
	
	engine.setProcessEventsInterval(10);

	agent = new StelScriptEngineAgent(&engine);
	engine.setAgent(agent);

	initActions();
}
Esempio n. 22
0
void setupQSpacerItem(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QSpacerItemtoScriptValue, QSpacerItemfromScriptValue);

  QScriptValue proto = engine->newQObject(new QSpacerItemProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QSpacerItem*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQSpacerItem, proto);
  engine->globalObject().setProperty("QSpacerItem", constructor);
}
Esempio n. 23
0
void setupQWebFrameProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QWebFrametoScriptValue, QWebFramefromScriptValue);
  QScriptValue::PropertyFlags permanent = QScriptValue::ReadOnly | QScriptValue::Undeletable;

  QScriptValue proto = engine->newQObject(new QWebFrameProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QWebFrame*>(), proto);
  // Not allowed. Is private in in qwebframe.h
  //engine->setDefaultPrototype(qMetaTypeId<QWebFrame>(), proto);

  QScriptValue constructor = engine->newFunction(constructQWebFrame, proto);
  engine->globalObject().setProperty("QWebFrame",  constructor);

  qScriptRegisterMetaType(engine, RenderLayerToScriptValue, RenderLayerFromScriptValue);
  constructor.setProperty("ContentsLayer", QScriptValue(engine, QWebFrame::ContentsLayer), permanent);
  constructor.setProperty("ScrollBarLayer", QScriptValue(engine, QWebFrame::ScrollBarLayer), permanent);
  constructor.setProperty("PanIconLayer", QScriptValue(engine, QWebFrame::PanIconLayer), permanent);
  constructor.setProperty("AllLayers", QScriptValue(engine, QWebFrame::AllLayers), permanent);
}
Esempio n. 24
0
void setupQDnsTextRecordProto(QScriptEngine *engine)
{
  QScriptValue proto = engine->newQObject(new QDnsTextRecordProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QDnsTextRecord*>(), proto);
  engine->setDefaultPrototype(qMetaTypeId<QDnsTextRecord>(),  proto);

  QScriptValue constructor = engine->newFunction(constructQDnsTextRecord, proto);
  engine->globalObject().setProperty("QDnsTextRecord",  constructor);

  qScriptRegisterMetaType(engine, QListQDnsTextRecordToScriptValue, QListQDnsTextRecordFromScriptValue);
}
Esempio n. 25
0
void setupQToolBarProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QToolBartoScriptValue, QToolBarfromScriptValue);

  QScriptValue proto = engine->newQObject(new QToolBarProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QToolBar*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQToolBar,
                                                 proto);
  engine->globalObject().setProperty("QToolBar",  constructor);
}
Esempio n. 26
0
void setupQMainWindowProto(QScriptEngine *engine)
{
 qScriptRegisterMetaType(engine, QMainWindowtoScriptValue, QMainWindowfromScriptValue);

  QScriptValue proto = engine->newQObject(new QMainWindowProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QMainWindow*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQMainWindow,
                                                 proto);
  engine->globalObject().setProperty("QMainWindow",  constructor);
}
Esempio n. 27
0
void setupQGridLayoutProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QGridLayouttoScriptValue, QGridLayoutfromScriptValue);

  QScriptValue proto = engine->newQObject(new QGridLayoutProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QGridLayout*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQGridLayout,
                                                 proto);
  engine->globalObject().setProperty("QGridLayout", constructor);
}
Esempio n. 28
0
void SPoint::installInEngine(QScriptEngine *engine)
{
    engine->globalObject().setProperty("newPoint", engine->newFunction(newPoint, 2));

    QScriptValue prototype = engine->newObject();
    prototype.setProperty("plus", engine->newFunction(plus,2));
    prototype.setProperty("minus", engine->newFunction(minus,2));
    prototype.setProperty("times", engine->newFunction(times,1));
    prototype.setProperty("toString", engine->newFunction(spointToString, 0));
    qScriptRegisterMetaType(engine, spointToScriptValue, spointFromScriptValue, prototype);
}
Esempio n. 29
0
void setupQByteArrayProto(QScriptEngine *engine)
{
  qScriptRegisterMetaType(engine, QByteArraytoScriptValue, QByteArrayfromScriptValue);

  QScriptValue proto = engine->newQObject(new QByteArrayProto(engine));
  engine->setDefaultPrototype(qMetaTypeId<QByteArray*>(), proto);

  QScriptValue constructor = engine->newFunction(constructQByteArray,
                                                 proto);
  engine->globalObject().setProperty("QByteArray",  constructor);
}
Esempio n. 30
0
void setupQDoubleValidatorProto(QScriptEngine *engine)
{
  //QScriptValue proto = engine->newQObject(new QDoubleValidatorProto(engine));
  //engine->setDefaultPrototype(qMetaTypeId<QDoubleValidator*>(), proto);
  //engine->setDefaultPrototype(qMetaTypeId<QDoubleValidator>(),  proto);

  qScriptRegisterMetaType(engine, QDoubleValidatorToScriptValue, QDoubleValidatorFromScriptValue);

  //QScriptValue constructor = engine->newFunction(constructQDoubleValidator,
  //                                               proto);
  //engine->globalObject().setProperty("QDoubleValidator", constructor);
}