History

entity tags

HifiExperiments committed 2 years ago

Commit 85f24f01 parent 78bc24c17 files · +271 −0Browse files

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

Unified · Split

libraries/script-engine/src/ScriptValueUtils.cpp+30−0
@@ -862,6 +862,14 @@ bool quuidFromScriptValue(const ScriptValue& object, QUuid& uuid) { · 861 unmodified lines
862862 return true;
863863 }
864864
865+ScriptValue qStringToScriptValue(ScriptEngine* engine, const QString& string) {
866+ if (string.isNull()) {
867+ return engine->nullValue();
868+ }
869+ ScriptValue obj(engine->newValue(string));
870+ return obj;
871+}
872+
865873 /*@jsdoc
866874 * A 2D size value.
867875 * @typedef {object} Size
@@ -1029,3 +1037,25 @@ QVector<EntityItemID> qVectorEntityItemIDFromScriptValue(const ScriptValue& arra · 161 unmodified lines
10291037 }
10301038 return newVector;
10311039 }
1040+
1041+ScriptValue qVectorQStringToScriptValue(ScriptEngine* engine, const QVector<QString>& vector) {
1042+ ScriptValue array = engine->newArray();
1043+ for (int i = 0; i < vector.size(); i++) {
1044+ array.setProperty(i, qStringToScriptValue(engine, vector.at(i)));
1045+ }
1046+ return array;
1047+}
1048+
1049+QVector<QString> qVectorQStringFromScriptValue(const ScriptValue& array) {
1050+ if (!array.isArray()) {
1051+ return QVector<QString>();
1052+ }
1053+ QVector<QString> newVector;
1054+ int length = array.property("length").toInteger();
1055+ newVector.reserve(length);
1056+ for (int i = 0; i < length; i++) {
1057+ QString string = array.property(i).toString();
1058+ newVector << string;
1059+ }
1060+ return newVector;
1061+}