History

Added QTimer* script data type and some nullptr checks

ksuprynowicz committed 4 years ago

Commit e9984c71 parent 80e5f2421 files · +43 −11Browse files

Showing the changes to libraries/script-engine/src/ScriptValueUtils.cpp (1 of 21 files). Show all

Unified · Split

libraries/script-engine/src/ScriptValueUtils.cpp+11−2
@@ -19,6 +19,7 @@ · 18 unmodified lines
1919 #include <QtCore/QRect>
2020 #include <QtCore/QUrl>
2121 #include <QtCore/QUuid>
22+#include <QtCore/QTimer>
2223
2324 #include <AACube.h>
2425 #include <shared/MiniPromises.h>
@@ -68,6 +69,7 @@ void registerMetaTypes(ScriptEngine* engine) { · 43 unmodified lines
6869 scriptRegisterMetaType<QRect, qRectToScriptValue, qRectFromScriptValue>(engine);
6970 scriptRegisterMetaType<QUrl, qURLToScriptValue, qURLFromScriptValue>(engine);
7071 scriptRegisterMetaType<QColor, qColorToScriptValue, qColorFromScriptValue>(engine);
72+ scriptRegisterMetaType<QTimer*, qTimerToScriptValue, qTimerFromScriptValue>(engine, "QTimer*");
7173
7274 scriptRegisterMetaType<PickRay, pickRayToScriptValue, pickRayFromScriptValue>(engine);
7375 scriptRegisterMetaType<Collision, collisionToScriptValue, collisionFromScriptValue>(engine);
@@ -665,6 +667,14 @@ bool aaCubeFromScriptValue(const ScriptValue& object, AACube& aaCube) { · 591 unmodified lines
665667 return true;
666668 }
667669
670+ScriptValue qTimerToScriptValue(ScriptEngine* engine, QTimer* const &in) {
671+ return engine->newQObject(in, ScriptEngine::QtOwnership);
672+}
673+
674+bool qTimerFromScriptValue(const ScriptValue& object, QTimer* &out) {
675+ return (out = qobject_cast<QTimer*>(object.toQObject())) != nullptr;
676+}
677+
668678 bool qColorFromScriptValue(const ScriptValue& object, QColor& color) {
669679 if (object.isNumber()) {
670680 color.setRgb(object.toUInt32());
@@ -834,8 +844,7 @@ ScriptValue meshToScriptValue(ScriptEngine* engine, MeshProxy* const& in) { · 163 unmodified lines
834844 }
835845
836846 bool meshFromScriptValue(const ScriptValue& value, MeshProxy*& out) {
837− out = qobject_cast<MeshProxy*>(value.toQObject());
838− return true;
847+ return (out = qobject_cast<MeshProxy*>(value.toQObject())) != nullptr;
839848 }
840849
841850 ScriptValue meshesToScriptValue(ScriptEngine* engine, const MeshProxyList& in) {