History

- few Adjustments in Application class for Script editor - Shortkey for script editor (Alt+S) - highlighter: bold true/false , single line comments - Run scripts from the editor works - More icons from Maximillian, Thanks - Run on the fly checkbox, works if the script is running. - Load/save features

Thijs Wenker committed 12 years ago

Commit c016d651 parent d2d393715 files · +1160 −48Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 15 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+23−1
@@ -43,6 +43,11 @@ static QScriptValue soundConstructor(QScriptContext* context, QScriptEngine* eng · 42 unmodified lines
4343 return soundScriptValue;
4444 }
4545
46+static QScriptValue debugPrint(QScriptContext* context, QScriptEngine* engine){
47+ qDebug() << "script:print()<<" << context->argument(0).toString();
48+ engine->evaluate("Script.print('"+context->argument(0).toString()+"')");
49+ return QScriptValue();
50+}
4651
4752 ScriptEngine::ScriptEngine(const QString& scriptContents, const QString& fileNameString,
4853 AbstractControllerScriptingInterface* controllerScriptingInterface) :
@@ -115,6 +120,7 @@ ScriptEngine::ScriptEngine(const QUrl& scriptURL, · 66 unmodified lines
115120 _scriptContents = in.readAll();
116121 } else {
117122 qDebug() << "ERROR Loading file:" << fileName;
123+ emit errorMessage("ERROR Loading file:" + fileName);
118124 }
119125 } else {
120126 QNetworkAccessManager* networkManager = new QNetworkAccessManager(this);
@@ -200,6 +206,9 @@ void ScriptEngine::init() { · 79 unmodified lines
200206 qScriptRegisterSequenceMetaType<QVector<glm::quat> >(&_engine);
201207 qScriptRegisterSequenceMetaType<QVector<QString> >(&_engine);
202208
209+ QScriptValue printConstructorValue = _engine.newFunction(debugPrint);
210+ _engine.globalObject().setProperty("print", printConstructorValue);
211+
203212 QScriptValue soundConstructorValue = _engine.newFunction(soundConstructor);
204213 QScriptValue soundMetaObject = _engine.newQMetaObject(&Sound::staticMetaObject, soundConstructorValue);
205214 _engine.globalObject().setProperty("Sound", soundMetaObject);
@@ -246,6 +255,7 @@ void ScriptEngine::evaluate() { · 40 unmodified lines
246255 if (_engine.hasUncaughtException()) {
247256 int line = _engine.uncaughtExceptionLineNumber();
248257 qDebug() << "Uncaught exception at line" << line << ":" << result.toString();
258+ emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString());
249259 }
250260 }
251261
@@ -266,11 +276,14 @@ void ScriptEngine::run() { · 14 unmodified lines
266276 init();
267277 }
268278 _isRunning = true;
279+ emit runningStateChanged();
269280
270281 QScriptValue result = _engine.evaluate(_scriptContents);
271282 if (_engine.hasUncaughtException()) {
272283 int line = _engine.uncaughtExceptionLineNumber();
284+
273285 qDebug() << "Uncaught exception at line" << line << ":" << result.toString();
286+ emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString());
274287 }
275288
276289 timeval startTime;
@@ -401,6 +414,7 @@ void ScriptEngine::run() { · 124 unmodified lines
401414 if (_engine.hasUncaughtException()) {
402415 int line = _engine.uncaughtExceptionLineNumber();
403416 qDebug() << "Uncaught exception at line" << line << ":" << _engine.uncaughtException().toString();
417+ emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + _engine.uncaughtException().toString());
404418 }
405419 }
406420 emit scriptEnding();
@@ -436,10 +450,12 @@ void ScriptEngine::run() { · 29 unmodified lines
436450 emit finished(_fileNameString);
437451
438452 _isRunning = false;
453+ emit runningStateChanged();
439454 }
440455
441456 void ScriptEngine::stop() {
442457 _isFinished = true;
458+ emit runningStateChanged();
443459 }
444460
445461 void ScriptEngine::timerFired() {
@@ -510,6 +526,10 @@ QUrl ScriptEngine::resolveInclude(const QString& include) const { · 64 unmodified lines
510526 return url;
511527 }
512528
529+void ScriptEngine::print(const QString& message) {
530+ emit printedMessage(message);
531+}
532+
513533 void ScriptEngine::include(const QString& includeFile) {
514534 QUrl url = resolveInclude(includeFile);
515535 QString includeContents;
@@ -523,6 +543,7 @@ void ScriptEngine::include(const QString& includeFile) { · 7 unmodified lines
523543 includeContents = in.readAll();
524544 } else {
525545 qDebug() << "ERROR Loading file:" << fileName;
546+ emit errorMessage("ERROR Loading file:" + fileName);
526547 }
527548 } else {
528549 QNetworkAccessManager* networkManager = new QNetworkAccessManager(this);
@@ -538,5 +559,6 @@ void ScriptEngine::include(const QString& includeFile) { · 9 unmodified lines
538559 if (_engine.hasUncaughtException()) {
539560 int line = _engine.uncaughtExceptionLineNumber();
540561 qDebug() << "Uncaught exception at (" << includeFile << ") line" << line << ":" << result.toString();
562+ emit errorMessage("Uncaught exception at (" + includeFile + ") line" + QString::number(line) + ":" + result.toString());
541563 }
542−}
564+}