finished coding and smoketested ScriptContextQtAgent (required to get Scriptable functional for its users)

This commit is contained in:
Heather Anderson 2021-09-04 02:16:01 -07:00 committed by ksuprynowicz
parent d868143da0
commit 86348b315e
3 changed files with 11 additions and 2 deletions

View file

@ -19,9 +19,9 @@
#include "ScriptEngineQtScript.h" #include "ScriptEngineQtScript.h"
class QScriptContext; class QScriptContext;
class QScriptEngine;
class QScriptValue; class QScriptValue;
class ScriptContextQtWrapper; class ScriptContextQtWrapper;
class ScriptEngineQtScript;
using ScriptContextQtPointer = QSharedPointer<ScriptContextQtWrapper>; using ScriptContextQtPointer = QSharedPointer<ScriptContextQtWrapper>;
class ScriptContextQtAgent final : public QScriptEngineAgent { class ScriptContextQtAgent final : public QScriptEngineAgent {

View file

@ -51,6 +51,7 @@
#include "ScriptContextQtWrapper.h" #include "ScriptContextQtWrapper.h"
#include "ScriptProgramQtWrapper.h" #include "ScriptProgramQtWrapper.h"
#include "ScriptValueQtWrapper.h" #include "ScriptValueQtWrapper.h"
#include "ScriptContextQtAgent.h"
static const int MAX_DEBUG_VALUE_LENGTH { 80 }; static const int MAX_DEBUG_VALUE_LENGTH { 80 };
@ -348,6 +349,9 @@ ScriptEngineQtScript::ScriptEngineQtScript(ScriptManager* scriptManager) :
_undefinedValue = ScriptValue(new ScriptValueQtWrapper(const_cast<ScriptEngineQtScript*>(this), std::move(undefined))); _undefinedValue = ScriptValue(new ScriptValueQtWrapper(const_cast<ScriptEngineQtScript*>(this), std::move(undefined)));
QScriptEngine::setProcessEventsInterval(MSECS_PER_SECOND); QScriptEngine::setProcessEventsInterval(MSECS_PER_SECOND);
_contextAgent = new ScriptContextQtAgent(this, agent());
setAgent(_contextAgent);
} }
bool ScriptEngineQtScript::isDebugMode() const { bool ScriptEngineQtScript::isDebugMode() const {
@ -358,7 +362,9 @@ bool ScriptEngineQtScript::isDebugMode() const {
#endif #endif
} }
ScriptEngineQtScript::~ScriptEngineQtScript() {} ScriptEngineQtScript::~ScriptEngineQtScript() {
delete _contextAgent;
}
void ScriptEngineQtScript::disconnectNonEssentialSignals() { void ScriptEngineQtScript::disconnectNonEssentialSignals() {
disconnect(); disconnect();

View file

@ -33,6 +33,7 @@
#include "ArrayBufferClass.h" #include "ArrayBufferClass.h"
class ScriptContextQtWrapper; class ScriptContextQtWrapper;
class ScriptContextQtAgent;
class ScriptEngineQtScript; class ScriptEngineQtScript;
class ScriptManager; class ScriptManager;
using ScriptEngineQtScriptPointer = QSharedPointer<ScriptEngineQtScript>; using ScriptEngineQtScriptPointer = QSharedPointer<ScriptEngineQtScript>;
@ -432,6 +433,8 @@ protected:
qint64 _lastUpdate; qint64 _lastUpdate;
ArrayBufferClass* _arrayBufferClass; ArrayBufferClass* _arrayBufferClass;
ScriptContextQtAgent* _contextAgent{ nullptr };
}; };
// Lambda helps create callable QScriptValues out of std::functions: // Lambda helps create callable QScriptValues out of std::functions: