History

Merge pull request #5825 from thoys/20655

CR for Job #20655 - Add ability to close one script from another script

Andrew Meadows committed 11 years ago

Commit 3af13292 parents 084ba8a f38bb774 files · +39 −30Browse files

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

Unified · Split

interface/src/Application.cpp+8−7
@@ -605,7 +605,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer &startup_time) : · 604 unmodified lines
605605 _overlays.init(); // do this before scripts load
606606
607607 _runningScriptsWidget->setRunningScripts(getRunningScripts());
608− connect(_runningScriptsWidget, &RunningScriptsWidget::stopScriptName, this, &Application::stopScript);
609608
610609 connect(this, SIGNAL(aboutToQuit()), this, SLOT(saveScripts()));
611610 connect(this, SIGNAL(aboutToQuit()), this, SLOT(aboutToQuit()));
@@ -4332,17 +4331,18 @@ void Application::stopAllScripts(bool restart) { · 3720 unmodified lines
43324331 _myAvatar->clearScriptableSettings();
43334332 }
43344333
4335−void Application::stopScript(const QString &scriptName, bool restart) {
4336− const QString& scriptURLString = QUrl(scriptName).toString();
4337− if (_scriptEnginesHash.contains(scriptURLString)) {
4338− ScriptEngine* scriptEngine = _scriptEnginesHash[scriptURLString];
4334+bool Application::stopScript(const QString& scriptHash, bool restart) {
4335+ bool stoppedScript = false;
4336+ if (_scriptEnginesHash.contains(scriptHash)) {
4337+ ScriptEngine* scriptEngine = _scriptEnginesHash[scriptHash];
43394338 if (restart) {
43404339 auto scriptCache = DependencyManager::get<ScriptCache>();
4341− scriptCache->deleteScript(scriptName);
4340+ scriptCache->deleteScript(QUrl(scriptHash));
43424341 connect(scriptEngine, SIGNAL(finished(const QString&)), SLOT(reloadScript(const QString&)));
43434342 }
43444343 scriptEngine->stop();
4345− qCDebug(interfaceapp) << "stopping script..." << scriptName;
4344+ stoppedScript = true;
4345+ qCDebug(interfaceapp) << "stopping script..." << scriptHash;
43464346 // HACK: ATM scripts cannot set/get their animation priorities, so we clear priorities
43474347 // whenever a script stops in case it happened to have been setting joint rotations.
43484348 // TODO: expose animation priorities and provide a layered animation control system.
@@ -4351,6 +4351,7 @@ void Application::stopScript(const QString &scriptName, bool restart) { · 2 unmodified lines
43514351 if (_scriptEnginesHash.empty()) {
43524352 _myAvatar->clearScriptableSettings();
43534353 }
4354+ return stoppedScript;
43544355 }
43554356
43564357 void Application::reloadAllScripts() {