History

Merge pull request #10792 from jherico/qml_crashes

Trying to fix QtQml/QtScript crashes

Brad Hefta-Gaub committed 9 years ago

Commit dc649e82 parents 63279f4 341646c47 files · +665 −461Browse files

Showing the changes to interface/src/Application.cpp (1 of 47 files). Show all

Unified · Split

interface/src/Application.cpp+14−4
@@ -99,8 +99,8 @@ · 98 unmodified lines
9999 #include <OctalCode.h>
100100 #include <OctreeSceneStats.h>
101101 #include <OffscreenUi.h>
102−#include <gl/OffscreenQmlSurfaceCache.h>
103102 #include <gl/OffscreenGLCanvas.h>
103+#include <ui/OffscreenQmlSurfaceCache.h>
104104 #include <PathUtils.h>
105105 #include <PerfStat.h>
106106 #include <PhysicsEngine.h>
@@ -125,7 +125,8 @@ · 18 unmodified lines
125125 #include <ScriptEngines.h>
126126 #include <ScriptCache.h>
127127 #include <SoundCache.h>
128−#include <TabletScriptingInterface.h>
128+#include <ui/TabletScriptingInterface.h>
129+#include <ui/ToolbarScriptingInterface.h>
129130 #include <Tooltip.h>
130131 #include <udt/PacketHeaders.h>
131132 #include <UserActivityLogger.h>
@@ -166,7 +167,6 @@ · 34 unmodified lines
166167 #include "scripting/SettingsScriptingInterface.h"
167168 #include "scripting/WindowScriptingInterface.h"
168169 #include "scripting/ControllerScriptingInterface.h"
169−#include "scripting/ToolbarScriptingInterface.h"
170170 #include "scripting/RatesScriptingInterface.h"
171171 #if defined(Q_OS_MAC) || defined(Q_OS_WIN)
172172 #include "SpeechRecognizer.h"
@@ -1805,6 +1805,8 @@ void Application::cleanupBeforeQuit() { · 1632 unmodified lines
18051805 #endif
18061806
18071807 // stop QML
1808+ DependencyManager::destroy<TabletScriptingInterface>();
1809+ DependencyManager::destroy<ToolbarScriptingInterface>();
18081810 DependencyManager::destroy<OffscreenUi>();
18091811
18101812 DependencyManager::destroy<OffscreenQmlSurfaceCache>();
@@ -5548,8 +5550,16 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri · 3737 unmodified lines
55485550
55495551 scriptEngine->registerGlobalObject("OffscreenFlags", DependencyManager::get<OffscreenUi>()->getFlags());
55505552 scriptEngine->registerGlobalObject("Desktop", DependencyManager::get<DesktopScriptingInterface>().data());
5553+
5554+ qScriptRegisterMetaType(scriptEngine, wrapperToScriptValue<ToolbarProxy>, wrapperFromScriptValue<ToolbarProxy>);
5555+ qScriptRegisterMetaType(scriptEngine, wrapperToScriptValue<ToolbarButtonProxy>, wrapperFromScriptValue<ToolbarButtonProxy>);
55515556 scriptEngine->registerGlobalObject("Toolbars", DependencyManager::get<ToolbarScriptingInterface>().data());
55525557
5558+ qScriptRegisterMetaType(scriptEngine, wrapperToScriptValue<TabletProxy>, wrapperFromScriptValue<TabletProxy>);
5559+ qScriptRegisterMetaType(scriptEngine, wrapperToScriptValue<TabletButtonProxy>, wrapperFromScriptValue<TabletButtonProxy>);
5560+ scriptEngine->registerGlobalObject("Tablet", DependencyManager::get<TabletScriptingInterface>().data());
5561+
5562+
55535563 DependencyManager::get<TabletScriptingInterface>().data()->setToolbarScriptingInterface(DependencyManager::get<ToolbarScriptingInterface>().data());
55545564
55555565 scriptEngine->registerGlobalObject("Window", DependencyManager::get<WindowScriptingInterface>().data());
@@ -5623,7 +5633,6 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri · 67 unmodified lines
56235633 scriptEngine->registerGlobalObject("EntityScriptServerLog", entityScriptServerLog.data());
56245634 scriptEngine->registerGlobalObject("AvatarInputs", AvatarInputs::getInstance());
56255635
5626−
56275636 qScriptRegisterMetaType(scriptEngine, OverlayIDtoScriptValue, OverlayIDfromScriptValue);
56285637
56295638 // connect this script engines printedMessage signal to the global ScriptEngines these various messages
@@ -5632,6 +5641,7 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri · 2 unmodified lines
56325641 connect(scriptEngine, &ScriptEngine::warningMessage, DependencyManager::get<ScriptEngines>().data(), &ScriptEngines::onWarningMessage);
56335642 connect(scriptEngine, &ScriptEngine::infoMessage, DependencyManager::get<ScriptEngines>().data(), &ScriptEngines::onInfoMessage);
56345643 connect(scriptEngine, &ScriptEngine::clearDebugWindow, DependencyManager::get<ScriptEngines>().data(), &ScriptEngines::onClearDebugWindow);
5644+
56355645 }
56365646
56375647 bool Application::canAcceptURL(const QString& urlString) const {