Merge pull request #4647 from huffman/fix-multiple-scripts-on-restart

Fix stop/reload all scripts affecting already-stopped scripts
This commit is contained in:
Clément Brisset 2015-04-17 16:29:23 +02:00
commit 516acee1c7
2 changed files with 7 additions and 2 deletions

View file

@ -3867,6 +3867,9 @@ void Application::stopAllScripts(bool restart) {
// stops all current running scripts // stops all current running scripts
for (QHash<QString, ScriptEngine*>::const_iterator it = _scriptEnginesHash.constBegin(); for (QHash<QString, ScriptEngine*>::const_iterator it = _scriptEnginesHash.constBegin();
it != _scriptEnginesHash.constEnd(); it++) { it != _scriptEnginesHash.constEnd(); it++) {
if (it.value()->isFinished()) {
continue;
}
if (restart && it.value()->isUserLoaded()) { if (restart && it.value()->isUserLoaded()) {
connect(it.value(), SIGNAL(finished(const QString&)), SLOT(loadScript(const QString&))); connect(it.value(), SIGNAL(finished(const QString&)), SLOT(loadScript(const QString&)));
} }

View file

@ -647,8 +647,10 @@ void ScriptEngine::stopAllTimers() {
} }
void ScriptEngine::stop() { void ScriptEngine::stop() {
_isFinished = true; if (!_isFinished) {
emit runningStateChanged(); _isFinished = true;
emit runningStateChanged();
}
} }
void ScriptEngine::timerFired() { void ScriptEngine::timerFired() {