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 | 52 | // We create a new ScriptHighligting QObject and provide it with a parent so this is NOT a memory leak. |
| 53 | 53 | new ScriptHighlighting(_scriptEditorWidgetUI->scriptEdit->document()); |
| 54 | 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 | 62 | ScriptEditorWidget::~ScriptEditorWidget() { |
| 58 | 63 | delete _scriptEditorWidgetUI; |
| 64 | + delete _console; | |
| 59 | 65 | } |
| 60 | 66 | |
| 61 | 67 | void ScriptEditorWidget::onScriptModified() { |
| @@ -68,6 +74,7 @@ void ScriptEditorWidget::onScriptModified() { · 6 unmodified lines | ||
| 68 | 74 | |
| 69 | 75 | void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) { |
| 70 | 76 | _scriptEngine = NULL; |
| 77 | + _console->setScriptEngine(NULL); | |
| 71 | 78 | if (_isRestarting) { |
| 72 | 79 | _isRestarting = false; |
| 73 | 80 | setRunning(true); |
| @@ -89,8 +96,6 @@ bool ScriptEditorWidget::setRunning(bool run) { · 15 unmodified lines | ||
| 89 | 96 | |
| 90 | 97 | if (_scriptEngine != NULL) { |
| 91 | 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 | 99 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 95 | 100 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 96 | 101 | } |
| @@ -100,15 +105,15 @@ bool ScriptEditorWidget::setRunning(bool run) { · 3 unmodified lines | ||
| 100 | 105 | // Reload script so that an out of date copy is not retrieved from the cache |
| 101 | 106 | _scriptEngine = qApp->loadScript(scriptURLString, true, true, false, true); |
| 102 | 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 | 108 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 106 | 109 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 107 | 110 | } else { |
| 108 | 111 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 109 | − qApp->stopScript(_currentScript); | |
| 112 | + const QString& scriptURLString = QUrl(_currentScript).toString(); | |
| 113 | + qApp->stopScript(scriptURLString); | |
| 110 | 114 | _scriptEngine = NULL; |
| 111 | 115 | } |
| 116 | + _console->setScriptEngine(_scriptEngine); | |
| 112 | 117 | return true; |
| 113 | 118 | } |
| 114 | 119 | |
| @@ -147,8 +152,6 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 32 unmodified lines | ||
| 147 | 152 | |
| 148 | 153 | if (_scriptEngine != NULL) { |
| 149 | 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 | 155 | disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 153 | 156 | disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 154 | 157 | } |
| @@ -168,16 +171,14 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 13 unmodified lines | ||
| 168 | 171 | static_cast<ScriptEditorWindow*>(this->parent()->parent()->parent())->terminateCurrentTab(); |
| 169 | 172 | } |
| 170 | 173 | } |
| 171 | − | |
| 172 | 174 | const QString& scriptURLString = QUrl(_currentScript).toString(); |
| 173 | 175 | _scriptEngine = qApp->getScriptEngine(scriptURLString); |
| 174 | 176 | if (_scriptEngine != NULL) { |
| 175 | 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 | 178 | connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified); |
| 179 | 179 | connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished); |
| 180 | 180 | } |
| 181 | + _console->setScriptEngine(_scriptEngine); | |
| 181 | 182 | } |
| 182 | 183 | |
| 183 | 184 | bool ScriptEditorWidget::save() { |
| @@ -210,19 +211,11 @@ bool ScriptEditorWidget::questionSave() { · 26 unmodified lines | ||
| 210 | 211 | QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Interface"), |
| 211 | 212 | tr("The script has been modified.\nDo you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard | |
| 212 | 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 | 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 | 219 | void ScriptEditorWidget::onWindowActivated() { |
| 227 | 220 | if (!_isReloading) { |
| 228 | 221 | _isReloading = true; |
| @@ -241,10 +234,8 @@ void ScriptEditorWidget::onWindowActivated() { · 12 unmodified lines | ||
| 241 | 234 | setRunning(false); |
| 242 | 235 | // Script is restarted once current script instance finishes. |
| 243 | 236 | } |
| 244 | − | |
| 245 | 237 | } |
| 246 | 238 | } |
| 247 | − | |
| 248 | 239 | _isReloading = false; |
| 249 | 240 | } |
| 250 | 241 | } |