Commit graph

2282 commits

Author SHA1 Message Date
5099e68b56 V8 fixes, including calls and signals 2023-05-19 00:17:37 +02:00
a7b1fdcae6 Fixed convertJSObjectToVariant 2023-05-19 00:17:37 +02:00
539c2812c3 Fixed Window.location 2023-05-19 00:17:37 +02:00
66a87def43 Fixed script array to QVariant conversion 2023-05-19 00:17:37 +02:00
cb4dc4c7e8 Fixed location JS API 2023-05-19 00:17:37 +02:00
4f4c8931a9 V8 fixes, incl. enum API objects fix 2023-05-19 00:17:37 +02:00
de91769e2f Fixed some V8 crashes 2023-05-19 00:17:37 +02:00
3f1a7605a5 Fixed build warnings 2023-05-19 00:17:37 +02:00
1550049b0c Fixed script value iterator and connect functionality 2023-05-19 00:17:37 +02:00
e786fd4864 Fixed Script.require 2023-05-19 00:17:37 +02:00
386242d9c7 Fixed adding properties to methods 2023-05-19 00:17:37 +02:00
076349a488 Re-enabled script module cache creation 2023-05-19 00:17:37 +02:00
Dale Glass
2960cc0284 Add missing override 2023-05-19 00:17:36 +02:00
Dale Glass
ac7ebe2888 Add hasProperty for checking whether a property exists 2023-05-19 00:17:36 +02:00
5f2c13da52 Added debug function to list object members 2023-05-19 00:17:36 +02:00
ed968e1ebd Further work on evaluateInClosure 2023-05-19 00:17:36 +02:00
70d4a43009 Fixed evaluateInClosure and other V8 stuff 2023-05-19 00:17:36 +02:00
cc20ced1ca Some V8 debuging messages 2023-05-19 00:17:36 +02:00
da458ccef9 Fixed getting current script name 2023-05-19 00:17:36 +02:00
6301d23c48 Fixed object deletion event, temporarily disabled watchdog log commands to make reading logs easier 2023-05-19 00:17:36 +02:00
0d454eb6e8 V8 fixes, including making debug console work 2023-05-19 00:17:36 +02:00
97137c7b13 More fixes for V8 2023-05-19 00:17:36 +02:00
2f9f78fb87 Fixed setting properties of ScriptObjectV8Proxy 2023-05-19 00:17:36 +02:00
0b8958204f Fixed vector math, added simple test for it 2023-05-19 00:17:36 +02:00
e680b5dc72 Fixed method calls 2023-05-19 00:17:36 +02:00
Dale Glass
640cee0360 Reduce V8 stack size to 256K. Otherwise the interface can be crashed with a stack overflow in a script. 2023-05-19 00:17:36 +02:00
be3d1713a8 Fixed C++ function calls for V8 2023-05-19 00:17:36 +02:00
abfcbb7588 Added V8 Locker for moving script engine to a new thread 2023-05-19 00:17:36 +02:00
827ddf5958 Added simple compile test function 2023-05-19 00:17:36 +02:00
Dale Glass
1a4eb3ac62 Keep return script value 2023-05-19 00:17:36 +02:00
Dale Glass
e5217c44f0 Build fixes 2023-05-19 00:17:36 +02:00
58a221541f Script engine new function fixes 2023-05-19 00:17:36 +02:00
a4c6930a50 Added context scopes 2023-05-19 00:17:36 +02:00
2b06c09318 Add V8 handle scopes 2023-05-19 00:17:36 +02:00
b4d21c38c3 Updated script isolation files 2023-05-19 00:17:36 +02:00
7e9ad39b32 Initial V8 support, not working yet 2023-05-19 00:17:36 +02:00
df507a741b Initial cmake files for V8 2023-05-19 00:17:36 +02:00
74a3c514d2 Replaced withReadLock with resultWithReadLock in ScriptSignalQtProxy::findConnection 2023-05-19 00:17:35 +02:00
586bd7ffca Fixes for code review 2023-05-19 00:17:35 +02:00
e9bfdd49e8 Fix build error on Windows 2023-05-19 00:17:35 +02:00
979e9ff113 Added scoring system for determining overloaded function to call 2023-05-19 00:17:35 +02:00
8304a0c500 Fixed clearTimeout behavior when called with expired timer 2023-05-19 00:17:35 +02:00
e9984c72f0 Added QTimer* script data type and some nullptr checks 2023-05-19 00:17:35 +02:00
7a84f7ee4d Fix for crash on deleting caches 2023-05-19 00:17:35 +02:00
b00c1ae91b Fixes to scripting-related warnings (lambdas) 2023-05-19 00:17:35 +02:00
6f32173025 Fixes to most scripting-related warnings 2023-05-19 00:17:35 +02:00
a14c6444f1 Forgot to add ResourceScriptingInterface.cpp before 2023-05-19 00:17:35 +02:00
5a9b0ccfb0 Replaced regular mutex with a read write one to improve performance 2023-05-19 00:17:35 +02:00
ad57a5e6fd Fixed enums in scripting engine 2023-05-19 00:17:35 +02:00
0a3ec92031 Type registeration fixes for scripting engine 2023-05-19 00:17:35 +02:00
50a6a63cc3 Fixes to problems with meta-types 2023-05-19 00:17:35 +02:00
33c8607e15 Proper handling of enum classes for scripting 2023-05-19 00:17:35 +02:00
95434a26a8 Attempt to debug broken enums in scripting 2023-05-19 00:17:35 +02:00
ece2b8096b Fixed list item removal during access bug 2023-05-19 00:17:35 +02:00
4d61d4fe67 Disallowed incorrect Vec3 to float cast in script engine 2023-05-19 00:17:35 +02:00
c78ec80539 Fixed build error after rebase 2023-05-19 00:17:35 +02:00
Heather Anderson
457728cee1 dropped KALILA global script attributes 2023-05-19 00:17:35 +02:00
Heather Anderson
67260b92bd fix typo preventing methods from being discovered on scriptable objects when we're ignoring superclasses 2023-05-19 00:17:35 +02:00
Heather Anderson
a822110a62 identify the largest number of parameters any of our method overrides accept and discard script parameters beyond that count 2023-05-19 00:17:35 +02:00
Heather Anderson
0bce0668f7 minor tweaks in response to code review (very belated) and reported issues
- explicitly registering some enums with Qt at runtime (needed if they're function return values)
- replaced references to engine() with local variables if they already existed
2023-05-19 00:17:34 +02:00
Heather Anderson
55b5a2cd03 Continued tightening and testing of the scripting engine "glue" logic
- QObject wrappers will now be reused when asked to wrap the same QObject multiple times
- improved error reporting when we can't form a native call from script
- dropped support for having the existing QtScript logic handle Qt object transformations
- assuming that our code will handle all calls into native objects
- changing timer functions to use CTimer* publicly rather than casted QObject*
2023-05-19 00:17:34 +02:00
Heather Anderson
bc6eaf25dc first pass creating Qt <-> QtScript interface 2023-05-19 00:17:34 +02:00
Heather Anderson
bd04554150 changes from code review suggestions 2023-05-19 00:17:34 +02:00
Heather Anderson
70fbe76341 convert script engine variables from QSharedPointer to std::shared_ptr 2023-05-19 00:17:34 +02:00
Heather Anderson
82535cab90 more shifting around of ScriptEngineQtScript declaration 2023-05-19 00:17:34 +02:00
Heather Anderson
c9bf36e57b more simplification of ScriptEngineQtScript declarations 2023-05-19 00:17:34 +02:00
Heather Anderson
bd4a035ffb significant cleanup of ScriptEngineQtScript (which isn't exposed to the scripting engine and shouldn't be @jsdoc'ed) 2023-05-19 00:17:34 +02:00
Heather Anderson
ef16b83362 patch review and removal of unnecessary differences 2023-05-19 00:17:34 +02:00
Heather Anderson
86348b315e finished coding and smoketested ScriptContextQtAgent (required to get Scriptable functional for its users) 2023-05-19 00:17:34 +02:00
Heather Anderson
fb93e39f66 more code review using github compiler runs (hopefully the macos build will link with this) 2023-05-19 00:17:34 +02:00
Heather Anderson
227e899189 more code review using github compiler runs 2023-05-19 00:17:34 +02:00
Heather Anderson
16c2d76efa more debugging using github compiler runs 2023-05-19 00:17:34 +02:00
Heather Anderson
23edfa3747 more changes in response to build log on other compilers 2023-05-19 00:17:34 +02:00
Heather Anderson
23776abce3 changes in response to build log on other compilers 2023-05-19 00:17:34 +02:00
Heather Anderson
8581022a53 rework ScriptValue to act like a stack variable rather than a pointer 2023-05-19 00:17:34 +02:00
Heather Anderson
f209c5124d early smoketesting 2023-05-19 00:17:34 +02:00
Heather Anderson
5f2b2c90a2 added custom type support 2023-05-19 00:17:34 +02:00
Heather Anderson
45ef458af4 dropping dependencies from networking to script-engine by moving EntityScriptClient and LocationScriptingInterface 2023-05-19 00:17:33 +02:00
Heather Anderson
7964f06990 moving EntityItemID from script-engine to shared 2023-05-19 00:17:33 +02:00
Heather Anderson
665ea521e8 shifting classes around and adding static initializers to resolve dependencies on scripting-engine (and drop dependencies from scripting-engine) 2023-05-19 00:17:33 +02:00
Heather Anderson
1f4f458942 adding basic script-engine documentation 2023-05-19 00:17:33 +02:00
Heather Anderson
2dd9d784a9 working to clean up the QtScript implementation and move towards completion of the proxy interface 2023-05-19 00:17:33 +02:00
Heather Anderson
1e018dbc64 isolate calls to the QtScript libraries to an interface we control 2023-05-19 00:17:33 +02:00
Heather Anderson
713b29ee41 ensure all #include's to QtScript are labeled as such (easier to find) 2023-05-19 00:17:33 +02:00
d2a768c2f0 Renamed environment variables 2022-09-08 22:18:50 +02:00
9b6d202a21 Rebranding and fixing URLs 2022-09-08 22:10:13 +02:00
Dale Glass
8a12bf1749 Replace usage of deprecated QWheelEvent members 2022-06-10 00:46:19 +02:00
Dale Glass
efdc1e9058 Fix deprecated int to flags conversion 2022-06-10 00:46:19 +02:00
Dale Glass
45a3c89e17 Replace deprecated qVariantFromValue 2022-06-10 00:46:19 +02:00
Dale Glass
50e1399cb5 Fix new[]/delete mismatch warning 2022-06-10 00:46:19 +02:00
Dale Glass
a7f6fed937 Replace deprecated .toSet() 2022-06-10 00:46:19 +02:00
Dale Glass
87ba20ecb4 Only whitespace changes 2022-06-10 00:46:19 +02:00
c6f1e6410e Updated some URLs, rebranded documentation and changed default metaverse server address 2022-02-09 23:57:24 +01:00
Kalila
03b5b83b67
Merge pull request #1339 from odysseus654/pr/make_shared
Housekeeping: use of std::make_shared / QSharedPointer::create.
2021-12-09 17:14:04 -05:00
Dale Glass
d77c8bbe41 Fix warnings related to deprecated usage of multiple keys in QHash and QMap
This replaces those uses with QMultiHash and QMultiMap
2021-11-26 17:53:23 +01:00
Heather Anderson
bcce9a2091 convert explicit shared pointer creation (using "new") to make_shared where possible/appropriate 2021-09-11 15:15:04 -07:00
Heather Anderson
ab4d70760e review and cleanup of "#include <QtCore/QSharedPointer>" 2021-09-10 21:40:54 -07:00
Dale Glass
24b2cdfcd2 Fix QString::SplitBehavior deprecation, replace with Qt:: 2021-08-06 20:16:10 +02:00
Kalila
0193e0f4d6
Merge pull request #1244 from digisomni/fix/lookup-string-spaces
Add ability for 'handleLookupString' to have spaces.
2021-07-12 17:07:29 -04:00
David Rowe
89c527f0d8 Update Doxygen group tags to use /// format 2021-07-01 15:59:58 +12:00
Kalila
40f81e4866
Merge pull request #1223 from odysseus654/pr/scripting-docs
Ensuring minimal documentation for classes declared in script-engine
2021-06-29 19:09:26 -04:00
Kalila
b86e4b98a9
Merge pull request #1249 from digisomni/fix/docs-links-dev
Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com".
2021-06-27 05:55:13 -04:00
David Rowe
e48e02d8c6 Fix JSDoc typo 2021-06-22 20:59:06 +12:00
Kalila L
90aaa85089 Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com". 2021-06-21 12:01:37 -04:00
Kalila L
51e6468abd Rename 'URL_SCHEME_HIFI' -> 'URL_SCHEME_VIRCADIA'. 2021-06-11 17:04:16 -04:00
Kalila
d8a0d13812
Merge pull request #1206 from odysseus654/pr/drop-script-debugging
drop remaining references to QScriptEngineDebugger
2021-06-03 18:01:40 -04:00
Heather Anderson
259cd20b87 Ensuring minimal documentation for classes declared in script-engine 2021-05-29 22:50:39 -07:00
David Rowe
4d11d1d515 Convert all "/**jsdoc" occurrences to "/*@jsdoc" 2021-05-12 10:54:45 +12:00
Heather Anderson
04f8ccd2b0 drop remaining references to QScriptEngineDebugger 2021-05-08 20:31:03 -07:00
Julian Groß
ecb7c47f1a Rename fbx folder to model-serializers 2021-04-15 19:26:10 +02:00
Dale Glass
a51c5057ca Add virtual destructor to TreeNodeBase
Fixes #1131, possibly solves a crash on exit.
2021-03-30 17:14:45 +02:00
Kalila
58fde3c159
Merge pull request #1090 from digisomni/feature/expand-kick-functionality
Add improved functionality for `Users.kick` API.
2021-03-28 21:05:59 -04:00
Kalila L
cfac34bf7e CR. 2021-03-21 13:20:05 -04:00
Kalila
12d5687c6a
Update libraries/script-engine/src/UsersScriptingInterface.h
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2021-03-21 13:13:24 -04:00
Kalila L
f067feb37a Add docs for ban functionality. 2021-03-19 04:44:58 -04:00
Kalila L
fd592dfb06 CR. 2021-03-19 04:11:26 -04:00
Kalila L
be0bd3940d Finish flag work on kick functionality. 2021-03-17 23:25:08 -04:00
Kalila L
0216b34681 State of refactoring 2021-03-17 19:37:06 -04:00
Kalila L
78cc98bc7b Add improved functionality for Users.kick API.
Add banByUsername, banByFingerprint, and banByIP parameters.
2021-03-11 01:03:54 -05:00
Kalila
1f4cb7b9d6
Update ScriptGatekeeper.cpp 2021-03-10 01:27:32 -05:00
Kalila
3dc11637ed
Apply suggestions from code review
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2021-03-10 01:27:05 -05:00
Kalila L
3ed98d0f3e Add "ScriptGatekeeper" class and "PRELOADED_SCRIPT_WHITELIST" variable. 2021-03-08 02:00:34 -05:00
David Rowe
5ad2f9d192 Fix OSX crash on shutdown 2021-02-26 09:05:52 +13:00
HifiExperiments
30c4779eeb name all the threads 2021-02-13 20:17:28 -08:00
kasenvr
86cbcb53a3
Merge pull request #882 from ctrlaltdavid/fix/jsdoc-typo
Fix JSDoc typo
2020-12-01 05:58:31 -05:00
David Rowe
eb70d15f77 Fix JSDoc typo 2020-11-23 19:13:48 +13:00
HifiExperiments
b6744588f4 loading fix 2020-11-16 21:25:25 -08:00
kasenvr
5080909bb9
Merge pull request #664 from kasenvr/feature/require-redownload
Feature/require redownload
2020-11-12 17:10:08 -05:00
humbletim
f41ef31ef5 changes per CR 2020-10-31 13:50:47 -04:00
humbletim
ae7aa3eb88 update ScriptCache to detect local script modifications 2020-10-29 11:30:33 -04:00
kasenvr
4b2c71cf61
Update libraries/script-engine/src/ScriptEngine.cpp
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2020-10-25 19:49:59 -04:00
Kalila L
50067e3361 Prevent crash on entity-script-server for due to logging interface. 2020-10-25 18:36:20 -04:00
Kalila L
05ad300894 CR. 2020-10-11 00:50:41 -04:00
Kalila L
36f5fd9636 Merge branch 'master' into feature/require-redownload 2020-10-11 00:15:52 -04:00
kasenvr
b182a7b371
Merge pull request #669 from odysseus654/pr/script-logging
add more details to messages logged in entity scripts
2020-10-06 04:35:11 -04:00
kasenvr
ca80d79991
Merge branch 'master' into fix/update-api-docs 2020-10-02 15:33:28 -04:00
kasenvr
c975d1acec
Update libraries/script-engine/src/ScriptEngine.h
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2020-10-02 15:32:05 -04:00
Kalila L
853c8052f4 Merge branch 'master' into pr/669 2020-10-02 15:29:51 -04:00
Dale Glass
1d58ac4d79 Sanitize the URL further by removing leading slashes and any duplicated ones 2020-09-23 23:33:22 +02:00
Dale Glass
b243d382fc Fix warning due to multiline comment 2020-09-23 22:34:01 +02:00
David Rowe
c6ba42b7d6 Fix calculating external resource paths 2020-09-23 22:15:13 +12:00
David Rowe
ba7242f4dc Script.getExternalPath() and related JSDoc 2020-09-23 17:23:40 +12:00
Kalila L
7b7038fae1 Bunch of URL updates later... 2020-09-21 00:54:49 -04:00
kasenvr
88fc213644
Apply suggestions from code review
Co-authored-by: David Rowe <david@ctrlaltstudio.com>
2020-09-19 23:53:04 -04:00
Dale Glass
25a9716642 Fix crash due to incorrect assert 2020-09-20 02:08:22 +02:00
Dale Glass
2de0934598 Some missed review fixes 2020-09-20 01:57:44 +02:00
David Rowe
2c84478dc1 Register metatype 2020-09-20 01:29:32 +02:00
Dale Glass
89aa89e9d3 Review fixes (non-working)
Trouble with:

> Script.getExternalPath(Script.ExternalPaths.Assets, "hi")

[UncaughtException evaluate] Error: cannot call getExternalPath(): argument 1 has unknown type `ExternalResource::Bucket' (register the type with qScriptRegisterMetaType()) in about:console:1 [Backtrace] <global>() at about:console:1
TypeError: cannot call getExternalPath(): argument 1 has unknown type `ExternalResource::Bucket' (register the type with qScriptRegisterMetaType())
2020-09-20 01:29:32 +02:00
Dale Glass
cd901f9e32 Move enum into ExternalResources namespace 2020-09-20 01:29:32 +02:00
Dale Glass
26bcaa420d Better enum registration 2020-09-20 01:29:32 +02:00