Showing the changes to interface/src/ui/ScriptEditorWidget.cpp (1 of 3 files). Show all
Unified · Split
| @@ -59,12 +59,8 @@ void ScriptEditorWidget::onScriptModified() { · 58 unmodified lines | |||
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | void ScriptEditorWidget::onScriptEnding() { | ||
| 63 | // signals will automatically be disonnected when the _scriptEngine is deleted later | ||
| 64 | _scriptEngine = NULL; | ||
| 65 | } | ||
| 66 | |||
| 67 | void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) { | 62 | void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) { |
| 63 | _scriptEngine = NULL; | ||
| 68 | if (_isRestarting) { | 64 | if (_isRestarting) { |
| 69 | _isRestarting = false; | 65 | _isRestarting = false; |
| 70 | setRunning(true); | 66 | setRunning(true); |
| @@ -84,23 +80,20 @@ bool ScriptEditorWidget::setRunning(bool run) { · 13 unmodified lines | |||
| 84 | return false; | 80 | return false; |
| 85 | } | 81 | } |
| 86 | 82 | ||
| 87 | // Clean-up old connections. | ||
| 88 | if (_scriptEngine != NULL) { | 83 | if (_scriptEngine != NULL) { |
| 89 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 84 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 90 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | 85 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); |
| 91 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | 86 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); |
| 92 | disconnect(_scriptEngine, &ScriptEngine::scriptEnding, this, &ScriptEditorWidget::onScriptEnding); | 87 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 93 | } | 88 | } |
| 94 | 89 | ||
| 95 | if (run) { | 90 | if (run) { |
| 96 | const QString& scriptURLString = QUrl(_currentScript).toString(); | 91 | const QString& scriptURLString = QUrl(_currentScript).toString(); |
| 97 | _scriptEngine = Application::getInstance()->loadScript(scriptURLString, true); | 92 | _scriptEngine = Application::getInstance()->loadScript(scriptURLString, true); |
| 98 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 93 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 99 | |||
| 100 | // Make new connections. | ||
| 101 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | 94 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); |
| 102 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | 95 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); |
| 103 | connect(_scriptEngine, &ScriptEngine::scriptEnding, this, &ScriptEditorWidget::onScriptEnding); | 96 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 104 | } else { | 97 | } else { |
| 105 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 98 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 106 | Application::getInstance()->stopScript(_currentScript); | 99 | Application::getInstance()->stopScript(_currentScript); |
| @@ -144,7 +137,7 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 37 unmodified lines | |||
| 144 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 137 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 145 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | 138 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); |
| 146 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | 139 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); |
| 147 | disconnect(_scriptEngine, &ScriptEngine::scriptEnding, this, &ScriptEditorWidget::onScriptEnding); | 140 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 148 | } | 141 | } |
| 149 | } else { | 142 | } else { |
| 150 | QNetworkAccessManager* networkManager = new QNetworkAccessManager(this); | 143 | QNetworkAccessManager* networkManager = new QNetworkAccessManager(this); |
| @@ -165,7 +158,7 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 14 unmodified lines | |||
| 165 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 158 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 166 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | 159 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); |
| 167 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | 160 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); |
| 168 | connect(_scriptEngine, &ScriptEngine::scriptEnding, this, &ScriptEditorWidget::onScriptEnding); | 161 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 169 | } | 162 | } |
| 170 | } | 163 | } |
| 171 | 164 | ||