History

isolate calls to the QtScript libraries to an interface we control

Heather Anderson committed 5 years ago

Commit 1e018db1 parent 713b29e260 files · +6904 −5064Browse files

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

Unified · Split

libraries/script-engine/src/ConsoleScriptingInterface.cpp+59−55
@@ -19,7 +19,10 @@ · 18 unmodified lines
1919
2020 #include <QtCore/QDateTime>
2121
22+#include "ScriptContext.h"
2223 #include "ScriptEngine.h"
24+#include "ScriptManager.h"
25+#include "ScriptValue.h"
2326
2427 #define INDENTATION 4 // 1 Tab - 4 spaces
2528 const QString LINE_SEPARATOR = "\n ";
@@ -27,71 +30,71 @@ const QString SPACE_SEPARATOR = " "; · 1 unmodified line
2730 const QString STACK_TRACE_FORMAT = "\n[Stacktrace]%1%2";
2831 QList<QString> ConsoleScriptingInterface::_groupDetails = QList<QString>();
2932
30−QScriptValue ConsoleScriptingInterface::info(QScriptContext* context, QScriptEngine* engine) {
31− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
32− scriptEngine->scriptInfoMessage(appendArguments(context));
33+ScriptValuePointer ConsoleScriptingInterface::info(ScriptContext* context, ScriptEngine* engine) {
34+ if (ScriptManager* scriptManager = engine->manager()) {
35+ scriptManager->scriptInfoMessage(appendArguments(context));
3336 }
34− return QScriptValue::NullValue;
37+ return engine->nullValue();
3538 }
3639
37−QScriptValue ConsoleScriptingInterface::log(QScriptContext* context, QScriptEngine* engine) {
40+ScriptValuePointer ConsoleScriptingInterface::log(ScriptContext* context, ScriptEngine* engine) {
3841 QString message = appendArguments(context);
3942 if (_groupDetails.count() == 0) {
40− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
41− scriptEngine->scriptPrintedMessage(message);
43+ if (ScriptManager* scriptManager = engine->manager()) {
44+ scriptManager->scriptPrintedMessage(message);
4245 }
4346 } else {
4447 logGroupMessage(message, engine);
4548 }
46− return QScriptValue::NullValue;
49+ return engine->nullValue();
4750 }
4851
49−QScriptValue ConsoleScriptingInterface::debug(QScriptContext* context, QScriptEngine* engine) {
50− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
51− scriptEngine->scriptPrintedMessage(appendArguments(context));
52+ScriptValuePointer ConsoleScriptingInterface::debug(ScriptContext* context, ScriptEngine* engine) {
53+ if (ScriptManager* scriptManager = engine->manager()) {
54+ scriptManager->scriptPrintedMessage(appendArguments(context));
5255 }
53− return QScriptValue::NullValue;
56+ return engine->nullValue();
5457 }
5558
56−QScriptValue ConsoleScriptingInterface::warn(QScriptContext* context, QScriptEngine* engine) {
57− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
58− scriptEngine->scriptWarningMessage(appendArguments(context));
59+ScriptValuePointer ConsoleScriptingInterface::warn(ScriptContext* context, ScriptEngine* engine) {
60+ if (ScriptManager* scriptManager = engine->manager()) {
61+ scriptManager->scriptWarningMessage(appendArguments(context));
5962 }
60− return QScriptValue::NullValue;
63+ return engine->nullValue();
6164 }
6265
63−QScriptValue ConsoleScriptingInterface::error(QScriptContext* context, QScriptEngine* engine) {
64− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
65− scriptEngine->scriptErrorMessage(appendArguments(context));
66+ScriptValuePointer ConsoleScriptingInterface::error(ScriptContext* context, ScriptEngine* engine) {
67+ if (ScriptManager* scriptManager = engine->manager()) {
68+ scriptManager->scriptErrorMessage(appendArguments(context));
6669 }
67− return QScriptValue::NullValue;
70+ return engine->nullValue();
6871 }
6972
70−QScriptValue ConsoleScriptingInterface::exception(QScriptContext* context, QScriptEngine* engine) {
71− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
72− scriptEngine->scriptErrorMessage(appendArguments(context));
73+ScriptValuePointer ConsoleScriptingInterface::exception(ScriptContext* context, ScriptEngine* engine) {
74+ if (ScriptManager* scriptManager = engine->manager()) {
75+ scriptManager->scriptErrorMessage(appendArguments(context));
7376 }
74− return QScriptValue::NullValue;
77+ return engine->nullValue();
7578 }
7679
7780 void ConsoleScriptingInterface::time(QString labelName) {
7881 _timerDetails.insert(labelName, QDateTime::currentDateTime().toUTC());
7982 QString message = QString("%1: Timer started").arg(labelName);
80− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
81− scriptEngine->scriptPrintedMessage(message);
83+ if (ScriptManager* scriptManager = engine()->manager()) {
84+ scriptManager->scriptPrintedMessage(message);
8285 }
8386 }
8487
8588 void ConsoleScriptingInterface::timeEnd(QString labelName) {
86− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
89+ if (ScriptManager* scriptManager = engine()->manager()) {
8790 if (!_timerDetails.contains(labelName)) {
88− scriptEngine->scriptErrorMessage("No such label found " + labelName);
91+ scriptManager->scriptErrorMessage("No such label found " + labelName);
8992 return;
9093 }
9194
9295 if (_timerDetails.value(labelName).isNull()) {
9396 _timerDetails.remove(labelName);
94− scriptEngine->scriptErrorMessage("Invalid start time for " + labelName);
97+ scriptManager->scriptErrorMessage("Invalid start time for " + labelName);
9598 return;
9699 }
97100 QDateTime _startTime = _timerDetails.value(labelName);
@@ -101,18 +104,18 @@ void ConsoleScriptingInterface::timeEnd(QString labelName) { · 3 unmodified lines
101104 QString message = QString("%1: %2ms").arg(labelName).arg(QString::number(diffInMS));
102105 _timerDetails.remove(labelName);
103106
104− scriptEngine->scriptPrintedMessage(message);
107+ scriptManager->scriptPrintedMessage(message);
105108 }
106109 }
107110
108−QScriptValue ConsoleScriptingInterface::assertion(QScriptContext* context, QScriptEngine* engine) {
111+ScriptValuePointer ConsoleScriptingInterface::assertion(ScriptContext* context, ScriptEngine* engine) {
109112 QString message;
110113 bool condition = false;
111114 for (int i = 0; i < context->argumentCount(); i++) {
112115 if (i == 0) {
113− condition = context->argument(i).toBool(); // accept first value as condition
116+ condition = context->argument(i)->toBool(); // accept first value as condition
114117 } else {
115− message += SPACE_SEPARATOR + context->argument(i).toString(); // accept other parameters as message
118+ message += SPACE_SEPARATOR + context->argument(i)->toString(); // accept other parameters as message
116119 }
117120 }
118121
@@ -123,63 +126,64 @@ QScriptValue ConsoleScriptingInterface::assertion(QScriptContext* context, QScri · 4 unmodified lines
123126 } else {
124127 assertionResult = QString("Assertion failed : %1").arg(message);
125128 }
126− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
127− scriptEngine->scriptErrorMessage(assertionResult);
129+ if (ScriptManager* scriptManager = engine->manager()) {
130+ scriptManager->scriptErrorMessage(assertionResult);
128131 }
129132 }
130− return QScriptValue::NullValue;
133+ return engine->nullValue();
131134 }
132135
133136 void ConsoleScriptingInterface::trace() {
134− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
135− scriptEngine->scriptPrintedMessage
137+ ScriptEnginePointer scriptEngine = engine();
138+ if (ScriptManager* scriptManager = scriptEngine->manager()) {
139+ scriptManager->scriptPrintedMessage
136140 (QString(STACK_TRACE_FORMAT).arg(LINE_SEPARATOR,
137141 scriptEngine->currentContext()->backtrace().join(LINE_SEPARATOR)));
138142 }
139143 }
140144
141145 void ConsoleScriptingInterface::clear() {
142− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
143− scriptEngine->clearDebugLogWindow();
146+ if (ScriptManager* scriptManager = engine()->manager()) {
147+ scriptManager->clearDebugLogWindow();
144148 }
145149 }
146150
147−QScriptValue ConsoleScriptingInterface::group(QScriptContext* context, QScriptEngine* engine) {
148− logGroupMessage(context->argument(0).toString(), engine); // accept first parameter as label
149− _groupDetails.push_back(context->argument(0).toString());
150− return QScriptValue::NullValue;
151+ScriptValuePointer ConsoleScriptingInterface::group(ScriptContext* context, ScriptEngine* engine) {
152+ logGroupMessage(context->argument(0)->toString(), engine); // accept first parameter as label
153+ _groupDetails.push_back(context->argument(0)->toString());
154+ return engine->nullValue();
151155 }
152156
153−QScriptValue ConsoleScriptingInterface::groupCollapsed(QScriptContext* context, QScriptEngine* engine) {
154− logGroupMessage(context->argument(0).toString(), engine); // accept first parameter as label
155− _groupDetails.push_back(context->argument(0).toString());
156− return QScriptValue::NullValue;
157+ScriptValuePointer ConsoleScriptingInterface::groupCollapsed(ScriptContext* context, ScriptEngine* engine) {
158+ logGroupMessage(context->argument(0)->toString(), engine); // accept first parameter as label
159+ _groupDetails.push_back(context->argument(0)->toString());
160+ return engine->nullValue();
157161 }
158162
159−QScriptValue ConsoleScriptingInterface::groupEnd(QScriptContext* context, QScriptEngine* engine) {
163+ScriptValuePointer ConsoleScriptingInterface::groupEnd(ScriptContext* context, ScriptEngine* engine) {
160164 ConsoleScriptingInterface::_groupDetails.removeLast();
161− return QScriptValue::NullValue;
165+ return engine->nullValue();
162166 }
163167
164−QString ConsoleScriptingInterface::appendArguments(QScriptContext* context) {
168+QString ConsoleScriptingInterface::appendArguments(ScriptContext* context) {
165169 QString message;
166170 for (int i = 0; i < context->argumentCount(); i++) {
167171 if (i > 0) {
168172 message += SPACE_SEPARATOR;
169173 }
170− message += context->argument(i).toString();
174+ message += context->argument(i)->toString();
171175 }
172176 return message;
173177 }
174178
175−void ConsoleScriptingInterface::logGroupMessage(QString message, QScriptEngine* engine) {
179+void ConsoleScriptingInterface::logGroupMessage(QString message, ScriptEngine* engine) {
176180 int _addSpaces = _groupDetails.count() * INDENTATION;
177181 QString logMessage;
178182 for (int i = 0; i < _addSpaces; i++) {
179183 logMessage.append(SPACE_SEPARATOR);
180184 }
181185 logMessage.append(message);
182− if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine)) {
183− scriptEngine->scriptPrintedMessage(logMessage);
186+ if (ScriptManager* scriptManager = engine->manager()) {
187+ scriptManager->scriptPrintedMessage(logMessage);
184188 }
185189 }