diff --git a/libraries/script-engine/src/DataServerScriptingInterface.h b/libraries/script-engine/src/DataServerScriptingInterface.h index 1cba837b2c..4a50bc087a 100644 --- a/libraries/script-engine/src/DataServerScriptingInterface.h +++ b/libraries/script-engine/src/DataServerScriptingInterface.h @@ -17,6 +17,8 @@ class DataServerScriptingInterface : public QObject { Q_OBJECT public: DataServerScriptingInterface(); + + void refreshUUID() { _uuid = QUuid::createUuid(); } public slots: void setValueForKey(const QString& key, const QString& value); private: diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 6b85cf33ad..2c08bd9b08 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -119,6 +119,8 @@ void ScriptEngine::init() { QScriptValue audioScriptingInterfaceValue = _engine.newQObject(&_audioScriptingInterface); _engine.globalObject().setProperty("Audio", audioScriptingInterfaceValue); + + registerGlobalObject("Data", &_dataServerScriptingInterface); if (_controllerScriptingInterface) { QScriptValue controllerScripterValue = _engine.newQObject(_controllerScriptingInterface); @@ -140,6 +142,10 @@ void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { _engine.globalObject().setProperty(name, value); } +void ScriptEngine::preEvaluateReset() { + _dataServerScriptingInterface.refreshUUID(); +} + void ScriptEngine::evaluate() { if (!_isInitialized) { init(); diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index 06597f82a8..ab38b48bbf 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -22,6 +22,7 @@ class ParticlesScriptingInterface; #include "AbstractControllerScriptingInterface.h" +#include "DataServerScriptingInterface.h" const QString NO_SCRIPT(""); @@ -61,6 +62,8 @@ signals: void finished(); protected: + void preEvaluateReset(); + QString _scriptContents; bool _isFinished; bool _isRunning; @@ -72,6 +75,7 @@ private: static ParticlesScriptingInterface _particlesScriptingInterface; AbstractControllerScriptingInterface* _controllerScriptingInterface; AudioScriptingInterface _audioScriptingInterface; + DataServerScriptingInterface _dataServerScriptingInterface; bool _wantMenuItems; QString _scriptMenuName; AbstractMenuInterface* _menu;