History

working to clean up the QtScript implementation and move towards completion of the proxy interface

Heather Anderson committed 5 years ago

Commit 2dd9d781 parent 1e018db38 files · +2240 −923Browse files

Showing the changes to libraries/script-engine/src/qtscript/ScriptContextQtWrapper.cpp (1 of 38 files). Show all

Unified · Split

libraries/script-engine/src/qtscript/ScriptContextQtWrapper.cpp+92−0
@@ -0,0 +1,92 @@
1+//
2+// ScriptContextQtWrapper.cpp
3+// libraries/script-engine/src
4+//
5+// Created by Heather Anderson on 5/22/21.
6+// Copyright 2021 Vircadia contributors.
7+//
8+// Distributed under the Apache License, Version 2.0.
9+// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10+//
11+
12+#include "ScriptContextQtWrapper.h"
13+
14+#include <QtScript/QScriptContext>
15+
16+#include "ScriptEngineQtScript.h"
17+#include "ScriptValueQtWrapper.h"
18+
19+ScriptContextQtWrapper* ScriptContextQtWrapper::unwrap(ScriptContext* val) {
20+ if (!val) {
21+ return nullptr;
22+ }
23+
24+ return dynamic_cast<ScriptContextQtWrapper*>(val);
25+}
26+
27+int ScriptContextQtWrapper::argumentCount() const {
28+ return _context->argumentCount();
29+}
30+
31+ScriptValuePointer ScriptContextQtWrapper::argument(int index) const {
32+ QScriptValue result = _context->argument(index);
33+ return ScriptValuePointer(new ScriptValueQtWrapper(_engine, std::move(result)));
34+}
35+
36+QStringList ScriptContextQtWrapper::backtrace() const {
37+ return _context->backtrace();
38+}
39+
40+ScriptValuePointer ScriptContextQtWrapper::callee() const {
41+ QScriptValue result = _context->callee();
42+ return ScriptValuePointer(new ScriptValueQtWrapper(_engine, std::move(result)));
43+}
44+
45+ScriptEnginePointer ScriptContextQtWrapper::engine() const {
46+ return _engine->sharedFromThis();
47+}
48+
49+ScriptFunctionContextPointer ScriptContextQtWrapper::functionContext() const {
50+ return ScriptFunctionContextPointer(new ScriptFunctionContextQtWrapper(_context));
51+}
52+
53+ScriptContextPointer ScriptContextQtWrapper::parentContext() const {
54+ QScriptContext* result = _context->parentContext();
55+ return ScriptContextPointer(new ScriptContextQtWrapper(_engine, result));
56+}
57+
58+ScriptValuePointer ScriptContextQtWrapper::thisObject() const {
59+ QScriptValue result = _context->thisObject();
60+ return ScriptValuePointer(new ScriptValueQtWrapper(_engine, std::move(result)));
61+}
62+
63+ScriptValuePointer ScriptContextQtWrapper::throwError(const QString& text) {
64+ QScriptValue result = _context->throwError(text);
65+ return ScriptValuePointer(new ScriptValueQtWrapper(_engine, std::move(result)));
66+}
67+
68+ScriptValuePointer ScriptContextQtWrapper::throwValue(const ScriptValuePointer& value) {
69+ ScriptValueQtWrapper* unwrapped = ScriptValueQtWrapper::unwrap(value);
70+ if (!unwrapped) {
71+ return _engine->undefinedValue();
72+ }
73+ QScriptValue result = _context->throwValue(unwrapped->toQtValue());
74+ return ScriptValuePointer(new ScriptValueQtWrapper(_engine, std::move(result)));
75+}
76+
77+
78+QString ScriptFunctionContextQtWrapper::fileName() const {
79+ return _value.fileName();
80+}
81+
82+QString ScriptFunctionContextQtWrapper::functionName() const {
83+ return _value.functionName();
84+}
85+
86+ScriptFunctionContext::FunctionType ScriptFunctionContextQtWrapper::functionType() const {
87+ return static_cast<ScriptFunctionContext::FunctionType>(_value.functionType());
88+}
89+
90+int ScriptFunctionContextQtWrapper::lineNumber() const {
91+ return _value.lineNumber();
92+}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t