Showing the changes to interface/src/ui/ScriptEditorWidget.cpp (1 of 4 files). Show all
Unified · Split
| @@ -52,10 +52,16 @@ ScriptEditorWidget::ScriptEditorWidget() : · 51 unmodified lines | |||
| 52 | // We create a new ScriptHighligting QObject and provide it with a parent so this is NOT a memory leak. | 52 | // We create a new ScriptHighligting QObject and provide it with a parent so this is NOT a memory leak. |
| 53 | new ScriptHighlighting(_scriptEditorWidgetUI->scriptEdit->document()); | 53 | new ScriptHighlighting(_scriptEditorWidgetUI->scriptEdit->document()); |
| 54 | QTimer::singleShot(0, _scriptEditorWidgetUI->scriptEdit, SLOT(setFocus())); | 54 | QTimer::singleShot(0, _scriptEditorWidgetUI->scriptEdit, SLOT(setFocus())); |
| 55 | |||
| 56 | _console = new JSConsole(this); | ||
| 57 | _console->setFixedHeight(CONSOLE_HEIGHT); | ||
| 58 | _scriptEditorWidgetUI->verticalLayout->addWidget(_console); | ||
| 59 | connect(_scriptEditorWidgetUI->clearButton, &QPushButton::clicked, _console, &JSConsole::clear); | ||
| 55 | } | 60 | } |
| 56 | 61 | ||
| 57 | ScriptEditorWidget::~ScriptEditorWidget() { | 62 | ScriptEditorWidget::~ScriptEditorWidget() { |
| 58 | delete _scriptEditorWidgetUI; | 63 | delete _scriptEditorWidgetUI; |
| 64 | delete _console; | ||
| 59 | } | 65 | } |
| 60 | 66 | ||
| 61 | void ScriptEditorWidget::onScriptModified() { | 67 | void ScriptEditorWidget::onScriptModified() { |
| @@ -68,6 +74,7 @@ void ScriptEditorWidget::onScriptModified() { · 6 unmodified lines | |||
| 68 | 74 | ||
| 69 | void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) { | 75 | void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) { |
| 70 | _scriptEngine = NULL; | 76 | _scriptEngine = NULL; |
| 77 | _console->setScriptEngine(NULL); | ||
| 71 | if (_isRestarting) { | 78 | if (_isRestarting) { |
| 72 | _isRestarting = false; | 79 | _isRestarting = false; |
| 73 | setRunning(true); | 80 | setRunning(true); |
| @@ -89,8 +96,6 @@ bool ScriptEditorWidget::setRunning(bool run) { · 15 unmodified lines | |||
| 89 | 96 | ||
| 90 | if (_scriptEngine != NULL) { | 97 | if (_scriptEngine != NULL) { |
| 91 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 98 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 92 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | ||
| 93 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | ||
| 94 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); | 99 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 95 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 100 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 96 | } | 101 | } |
| @@ -100,15 +105,15 @@ bool ScriptEditorWidget::setRunning(bool run) { · 3 unmodified lines | |||
| 100 | // Reload script so that an out of date copy is not retrieved from the cache | 105 | // Reload script so that an out of date copy is not retrieved from the cache |
| 101 | _scriptEngine = qApp->loadScript(scriptURLString, true, true, false, true); | 106 | _scriptEngine = qApp->loadScript(scriptURLString, true, true, false, true); |
| 102 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 107 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 103 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | ||
| 104 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | ||
| 105 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); | 108 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 106 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 109 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 107 | } else { | 110 | } else { |
| 108 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 111 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 109 | qApp->stopScript(_currentScript); | 112 | const QString& scriptURLString = QUrl(_currentScript).toString(); |
| 113 | qApp->stopScript(scriptURLString); | ||
| 110 | _scriptEngine = NULL; | 114 | _scriptEngine = NULL; |
| 111 | } | 115 | } |
| 116 | _console->setScriptEngine(_scriptEngine); | ||
| 112 | return true; | 117 | return true; |
| 113 | } | 118 | } |
| 114 | 119 | ||
| @@ -147,8 +152,6 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 32 unmodified lines | |||
| 147 | 152 | ||
| 148 | if (_scriptEngine != NULL) { | 153 | if (_scriptEngine != NULL) { |
| 149 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 154 | disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 150 | disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | ||
| 151 | disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | ||
| 152 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); | 155 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 153 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 156 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 154 | } | 157 | } |
| @@ -168,16 +171,14 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 13 unmodified lines | |||
| 168 | static_cast<ScriptEditorWindow*>(this->parent()->parent()->parent())->terminateCurrentTab(); | 171 | static_cast<ScriptEditorWindow*>(this->parent()->parent()->parent())->terminateCurrentTab(); |
| 169 | } | 172 | } |
| 170 | } | 173 | } |
| 171 | |||
| 172 | const QString& scriptURLString = QUrl(_currentScript).toString(); | 174 | const QString& scriptURLString = QUrl(_currentScript).toString(); |
| 173 | _scriptEngine = qApp->getScriptEngine(scriptURLString); | 175 | _scriptEngine = qApp->getScriptEngine(scriptURLString); |
| 174 | if (_scriptEngine != NULL) { | 176 | if (_scriptEngine != NULL) { |
| 175 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); | 177 | connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged); |
| 176 | connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError); | ||
| 177 | connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint); | ||
| 178 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); | 178 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 179 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); | 179 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 180 | } | 180 | } |
| 181 | _console->setScriptEngine(_scriptEngine); | ||
| 181 | } | 182 | } |
| 182 | 183 | ||
| 183 | bool ScriptEditorWidget::save() { | 184 | bool ScriptEditorWidget::save() { |
| @@ -210,19 +211,11 @@ bool ScriptEditorWidget::questionSave() { · 26 unmodified lines | |||
| 210 | QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Interface"), | 211 | QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Interface"), |
| 211 | tr("The script has been modified.\nDo you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard | | 212 | tr("The script has been modified.\nDo you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard | |
| 212 | QMessageBox::Cancel, QMessageBox::Save); | 213 | QMessageBox::Cancel, QMessageBox::Save); |
| 213 | return button == QMessageBox::Save ? save() : (button == QMessageBox::Cancel ? false : true); | 214 | return button == QMessageBox::Save ? save() : (button == QMessageBox::Discard); |
| 214 | } | 215 | } |
| 215 | return true; | 216 | return true; |
| 216 | } | 217 | } |
| 217 | 218 | ||
| 218 | void ScriptEditorWidget::onScriptError(const QString& message) { | ||
| 219 | _scriptEditorWidgetUI->debugText->appendPlainText("ERROR: " + message); | ||
| 220 | } | ||
| 221 | |||
| 222 | void ScriptEditorWidget::onScriptPrint(const QString& message) { | ||
| 223 | _scriptEditorWidgetUI->debugText->appendPlainText("> " + message); | ||
| 224 | } | ||
| 225 | |||
| 226 | void ScriptEditorWidget::onWindowActivated() { | 219 | void ScriptEditorWidget::onWindowActivated() { |
| 227 | if (!_isReloading) { | 220 | if (!_isReloading) { |
| 228 | _isReloading = true; | 221 | _isReloading = true; |
| @@ -241,10 +234,8 @@ void ScriptEditorWidget::onWindowActivated() { · 12 unmodified lines | |||
| 241 | setRunning(false); | 234 | setRunning(false); |
| 242 | // Script is restarted once current script instance finishes. | 235 | // Script is restarted once current script instance finishes. |
| 243 | } | 236 | } |
| 244 | |||
| 245 | } | 237 | } |
| 246 | } | 238 | } |
| 247 | |||
| 248 | _isReloading = false; | 239 | _isReloading = false; |
| 249 | } | 240 | } |
| 250 | } | 241 | } |