History

ScriptEditor Improvements: - Script restart works proper again - Fixed on and off icon switch - Replaced regular script output box with fully functional JSConsole!

Thijs Wenker committed 11 years ago

Commit 96b60671 parent 880d34d4 files · +18 −68Browse files

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

Unified · Split

interface/src/ui/ScriptEditorWidget.cpp+12−21
@@ -52,10 +52,16 @@ ScriptEditorWidget::ScriptEditorWidget() : · 51 unmodified lines
5252 // We create a new ScriptHighligting QObject and provide it with a parent so this is NOT a memory leak.
5353 new ScriptHighlighting(_scriptEditorWidgetUI->scriptEdit->document());
5454 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);
5560 }
5661
5762 ScriptEditorWidget::~ScriptEditorWidget() {
5863 delete _scriptEditorWidgetUI;
64+ delete _console;
5965 }
6066
6167 void ScriptEditorWidget::onScriptModified() {
@@ -68,6 +74,7 @@ void ScriptEditorWidget::onScriptModified() { · 6 unmodified lines
6874
6975 void ScriptEditorWidget::onScriptFinished(const QString& scriptPath) {
7076 _scriptEngine = NULL;
77+ _console->setScriptEngine(NULL);
7178 if (_isRestarting) {
7279 _isRestarting = false;
7380 setRunning(true);
@@ -89,8 +96,6 @@ bool ScriptEditorWidget::setRunning(bool run) { · 15 unmodified lines
8996
9097 if (_scriptEngine != NULL) {
9198 disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged);
92− disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError);
93− disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint);
9499 disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified);
95100 disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
96101 }
@@ -100,15 +105,15 @@ bool ScriptEditorWidget::setRunning(bool run) { · 3 unmodified lines
100105 // Reload script so that an out of date copy is not retrieved from the cache
101106 _scriptEngine = qApp->loadScript(scriptURLString, true, true, false, true);
102107 connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged);
103− connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError);
104− connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint);
105108 connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified);
106109 connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
107110 } else {
108111 connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
109− qApp->stopScript(_currentScript);
112+ const QString& scriptURLString = QUrl(_currentScript).toString();
113+ qApp->stopScript(scriptURLString);
110114 _scriptEngine = NULL;
111115 }
116+ _console->setScriptEngine(_scriptEngine);
112117 return true;
113118 }
114119
@@ -147,8 +152,6 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 32 unmodified lines
147152
148153 if (_scriptEngine != NULL) {
149154 disconnect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged);
150− disconnect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError);
151− disconnect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint);
152155 disconnect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified);
153156 disconnect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
154157 }
@@ -168,16 +171,14 @@ void ScriptEditorWidget::loadFile(const QString& scriptPath) { · 13 unmodified lines
168171 static_cast<ScriptEditorWindow*>(this->parent()->parent()->parent())->terminateCurrentTab();
169172 }
170173 }
171−
172174 const QString& scriptURLString = QUrl(_currentScript).toString();
173175 _scriptEngine = qApp->getScriptEngine(scriptURLString);
174176 if (_scriptEngine != NULL) {
175177 connect(_scriptEngine, &ScriptEngine::runningStateChanged, this, &ScriptEditorWidget::runningStateChanged);
176− connect(_scriptEngine, &ScriptEngine::errorMessage, this, &ScriptEditorWidget::onScriptError);
177− connect(_scriptEngine, &ScriptEngine::printedMessage, this, &ScriptEditorWidget::onScriptPrint);
178178 connect(_scriptEngine, &ScriptEngine::update, this, &ScriptEditorWidget::onScriptModified);
179179 connect(_scriptEngine, &ScriptEngine::finished, this, &ScriptEditorWidget::onScriptFinished);
180180 }
181+ _console->setScriptEngine(_scriptEngine);
181182 }
182183
183184 bool ScriptEditorWidget::save() {
@@ -210,19 +211,11 @@ bool ScriptEditorWidget::questionSave() { · 26 unmodified lines
210211 QMessageBox::StandardButton button = QMessageBox::warning(this, tr("Interface"),
211212 tr("The script has been modified.\nDo you want to save your changes?"), QMessageBox::Save | QMessageBox::Discard |
212213 QMessageBox::Cancel, QMessageBox::Save);
213− return button == QMessageBox::Save ? save() : (button == QMessageBox::Cancel ? false : true);
214+ return button == QMessageBox::Save ? save() : (button == QMessageBox::Discard);
214215 }
215216 return true;
216217 }
217218
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−
226219 void ScriptEditorWidget::onWindowActivated() {
227220 if (!_isReloading) {
228221 _isReloading = true;
@@ -241,10 +234,8 @@ void ScriptEditorWidget::onWindowActivated() { · 12 unmodified lines
241234 setRunning(false);
242235 // Script is restarted once current script instance finishes.
243236 }
244−
245237 }
246238 }
247−
248239 _isReloading = false;
249240 }
250241 }