Merge pull request #3004 from matsukaze/master

Job #19766 BUG: Stop or reload all scripts crashes interface
This commit is contained in:
Brad Hefta-Gaub 2014-06-11 11:51:03 -07:00
commit 62f85d0794

View file

@ -3494,8 +3494,10 @@ void Application::saveScripts() {
} }
ScriptEngine* Application::loadScript(const QString& scriptName, bool loadScriptFromEditor) { ScriptEngine* Application::loadScript(const QString& scriptName, bool loadScriptFromEditor) {
if(loadScriptFromEditor && _scriptEnginesHash.contains(scriptName) && !_scriptEnginesHash[scriptName]->isFinished()){ QUrl scriptUrl(scriptName);
return _scriptEnginesHash[scriptName]; const QString& scriptURLString = scriptUrl.toString();
if(loadScriptFromEditor && _scriptEnginesHash.contains(scriptURLString) && !_scriptEnginesHash[scriptURLString]->isFinished()){
return _scriptEnginesHash[scriptURLString];
} }
ScriptEngine* scriptEngine; ScriptEngine* scriptEngine;
@ -3503,9 +3505,8 @@ ScriptEngine* Application::loadScript(const QString& scriptName, bool loadScript
scriptEngine = new ScriptEngine(NO_SCRIPT, "", &_controllerScriptingInterface); scriptEngine = new ScriptEngine(NO_SCRIPT, "", &_controllerScriptingInterface);
} else { } else {
// start the script on a new thread... // start the script on a new thread...
QUrl scriptUrl(scriptName);
scriptEngine = new ScriptEngine(scriptUrl, &_controllerScriptingInterface); scriptEngine = new ScriptEngine(scriptUrl, &_controllerScriptingInterface);
_scriptEnginesHash.insert(scriptName, scriptEngine); _scriptEnginesHash.insert(scriptURLString, scriptEngine);
if (!scriptEngine->hasScript()) { if (!scriptEngine->hasScript()) {
qDebug() << "Application::loadScript(), script failed to load..."; qDebug() << "Application::loadScript(), script failed to load...";