From 0c9ff87feb6eb63a4925d8c098a45fccfe869b3a Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Mon, 19 Dec 2016 19:34:14 -0800 Subject: [PATCH] add support for an HMD script debug log window --- interface/src/Application.cpp | 3 +++ libraries/script-engine/src/ScriptEngines.cpp | 5 +++++ libraries/script-engine/src/ScriptEngines.h | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 64934b47de..78cc1349dd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5269,6 +5269,9 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri auto scriptingInterface = DependencyManager::get(); scriptEngine->registerGlobalObject("Controller", scriptingInterface.data()); UserInputMapper::registerControllerTypes(scriptEngine); + + // connect this script engines printedMessage signal to the global ScriptEngines onPrintedMessage + connect(scriptEngine, &ScriptEngine::printedMessage, DependencyManager::get().data(), &ScriptEngines::onPrintedMessage); } bool Application::canAcceptURL(const QString& urlString) const { diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index b3092be55a..9ddc8901db 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -32,6 +32,11 @@ ScriptsModel& getScriptsModel() { return scriptsModel; } +void ScriptEngines::onPrintedMessage(const QString& message) { + auto scriptEngine = qobject_cast(sender()); + emit printedMessage(message, scriptEngine->getFilename()); +} + ScriptEngines::ScriptEngines() : _scriptsLocationHandle("scriptsLocation", DESKTOP_LOCATION) { diff --git a/libraries/script-engine/src/ScriptEngines.h b/libraries/script-engine/src/ScriptEngines.h index a9c273b2a7..06f94cd5f1 100644 --- a/libraries/script-engine/src/ScriptEngines.h +++ b/libraries/script-engine/src/ScriptEngines.h @@ -74,10 +74,15 @@ signals: void scriptCountChanged(); void scriptsReloading(); void scriptLoadError(const QString& filename, const QString& error); + void printedMessage(const QString& message, const QString& filename); + +public slots: + void onPrintedMessage(const QString& message); protected slots: void onScriptFinished(const QString& fileNameString, ScriptEngine* engine); + protected: friend class ScriptEngine;