Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 3 files). Show all
Unified · Split
| @@ -270,6 +270,20 @@ static void resultHandlerFromScriptValue(const QScriptValue& value, AnimVariantR · 269 unmodified lines | |||
| 270 | assert(false); | 270 | assert(false); |
| 271 | } | 271 | } |
| 272 | 272 | ||
| 273 | // Templated qScriptRegisterMetaType fails to compile with raw pointers | ||
| 274 | using ScriptableResourceRawPtr = ScriptableResource*; | ||
| 275 | |||
| 276 | static QScriptValue scriptableResourceToScriptValue(QScriptEngine* engine, const ScriptableResourceRawPtr& resource) { | ||
| 277 | auto object = engine->newQObject( | ||
| 278 | const_cast<ScriptableResourceRawPtr>(resource), | ||
| 279 | QScriptEngine::ScriptOwnership); | ||
| 280 | return object; | ||
| 281 | } | ||
| 282 | |||
| 283 | static void scriptableResourceFromScriptValue(const QScriptValue& value, ScriptableResourceRawPtr& resource) { | ||
| 284 | resource = static_cast<ScriptableResourceRawPtr>(value.toQObject()); | ||
| 285 | } | ||
| 286 | |||
| 273 | void ScriptEngine::init() { | 287 | void ScriptEngine::init() { |
| 274 | if (_isInitialized) { | 288 | if (_isInitialized) { |
| 275 | return; // only initialize once | 289 | return; // only initialize once |
| @@ -332,6 +346,8 @@ void ScriptEngine::init() { · 56 unmodified lines | |||
| 332 | qScriptRegisterMetaType(this, animVarMapToScriptValue, animVarMapFromScriptValue); | 346 | qScriptRegisterMetaType(this, animVarMapToScriptValue, animVarMapFromScriptValue); |
| 333 | qScriptRegisterMetaType(this, resultHandlerToScriptValue, resultHandlerFromScriptValue); | 347 | qScriptRegisterMetaType(this, resultHandlerToScriptValue, resultHandlerFromScriptValue); |
| 334 | 348 | ||
| 349 | qScriptRegisterMetaType(this, scriptableResourceToScriptValue, scriptableResourceFromScriptValue); | ||
| 350 | |||
| 335 | // constants | 351 | // constants |
| 336 | globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE))); | 352 | globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE))); |
| 337 | 353 | ||