From 86348b315e7c302c5791cb34cc6bf11a64244fae Mon Sep 17 00:00:00 2001 From: Heather Anderson Date: Sat, 4 Sep 2021 02:16:01 -0700 Subject: [PATCH] finished coding and smoketested ScriptContextQtAgent (required to get Scriptable functional for its users) --- .../script-engine/src/qtscript/ScriptContextQtAgent.h | 2 +- .../script-engine/src/qtscript/ScriptEngineQtScript.cpp | 8 +++++++- .../script-engine/src/qtscript/ScriptEngineQtScript.h | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/libraries/script-engine/src/qtscript/ScriptContextQtAgent.h b/libraries/script-engine/src/qtscript/ScriptContextQtAgent.h index 183e4a0bef..38e64ffc22 100644 --- a/libraries/script-engine/src/qtscript/ScriptContextQtAgent.h +++ b/libraries/script-engine/src/qtscript/ScriptContextQtAgent.h @@ -19,9 +19,9 @@ #include "ScriptEngineQtScript.h" class QScriptContext; -class QScriptEngine; class QScriptValue; class ScriptContextQtWrapper; +class ScriptEngineQtScript; using ScriptContextQtPointer = QSharedPointer; class ScriptContextQtAgent final : public QScriptEngineAgent { diff --git a/libraries/script-engine/src/qtscript/ScriptEngineQtScript.cpp b/libraries/script-engine/src/qtscript/ScriptEngineQtScript.cpp index 66a3fb455a..bb686480f7 100644 --- a/libraries/script-engine/src/qtscript/ScriptEngineQtScript.cpp +++ b/libraries/script-engine/src/qtscript/ScriptEngineQtScript.cpp @@ -51,6 +51,7 @@ #include "ScriptContextQtWrapper.h" #include "ScriptProgramQtWrapper.h" #include "ScriptValueQtWrapper.h" +#include "ScriptContextQtAgent.h" static const int MAX_DEBUG_VALUE_LENGTH { 80 }; @@ -348,6 +349,9 @@ ScriptEngineQtScript::ScriptEngineQtScript(ScriptManager* scriptManager) : _undefinedValue = ScriptValue(new ScriptValueQtWrapper(const_cast(this), std::move(undefined))); QScriptEngine::setProcessEventsInterval(MSECS_PER_SECOND); + + _contextAgent = new ScriptContextQtAgent(this, agent()); + setAgent(_contextAgent); } bool ScriptEngineQtScript::isDebugMode() const { @@ -358,7 +362,9 @@ bool ScriptEngineQtScript::isDebugMode() const { #endif } -ScriptEngineQtScript::~ScriptEngineQtScript() {} +ScriptEngineQtScript::~ScriptEngineQtScript() { + delete _contextAgent; +} void ScriptEngineQtScript::disconnectNonEssentialSignals() { disconnect(); diff --git a/libraries/script-engine/src/qtscript/ScriptEngineQtScript.h b/libraries/script-engine/src/qtscript/ScriptEngineQtScript.h index ebf13a3900..09cfdfdea6 100644 --- a/libraries/script-engine/src/qtscript/ScriptEngineQtScript.h +++ b/libraries/script-engine/src/qtscript/ScriptEngineQtScript.h @@ -33,6 +33,7 @@ #include "ArrayBufferClass.h" class ScriptContextQtWrapper; +class ScriptContextQtAgent; class ScriptEngineQtScript; class ScriptManager; using ScriptEngineQtScriptPointer = QSharedPointer; @@ -432,6 +433,8 @@ protected: qint64 _lastUpdate; ArrayBufferClass* _arrayBufferClass; + + ScriptContextQtAgent* _contextAgent{ nullptr }; }; // Lambda helps create callable QScriptValues out of std::functions: