From bed37ef49aca1f0d930c9c508a3276d5fbdc9f59 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 16 Mar 2015 13:57:22 -0700 Subject: [PATCH] incorporate code review feedback --- .../entities/src/EntityScriptingInterface.cpp | 38 +-------------- .../entities/src/EntityScriptingInterface.h | 1 - libraries/entities/src/EntityTree.cpp | 4 +- .../src/RecurseOctreeToMapOperator.cpp | 17 +------ libraries/octree/src/OctreePersistThread.cpp | 2 +- .../shared/src/VariantMapToScriptValue.cpp | 47 +++++++++++++++++++ .../shared/src/VariantMapToScriptValue.h | 16 +++++++ 7 files changed, 69 insertions(+), 56 deletions(-) create mode 100644 libraries/shared/src/VariantMapToScriptValue.cpp create mode 100644 libraries/shared/src/VariantMapToScriptValue.h diff --git a/libraries/entities/src/EntityScriptingInterface.cpp b/libraries/entities/src/EntityScriptingInterface.cpp index 08743cc56c..5624e0765b 100644 --- a/libraries/entities/src/EntityScriptingInterface.cpp +++ b/libraries/entities/src/EntityScriptingInterface.cpp @@ -9,6 +9,8 @@ // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // +#include + #include "EntityScriptingInterface.h" #include "EntityTree.h" #include "LightEntityItem.h" @@ -383,39 +385,3 @@ void RayToEntityIntersectionResultFromScriptValue(const QScriptValue& object, Ra vec3FromScriptValue(intersection, value.intersection); } } - - -// XXX why can't I find a call that does this? -QScriptValue variantMapToQScriptValue(QVariantMap& variantMap, QScriptEngine& scriptEngine) { - QScriptValue scriptValue = scriptEngine.newObject(); - - for (QVariantMap::const_iterator iter = variantMap.begin(); iter != variantMap.end(); ++iter) { - QString key = iter.key(); - QVariant qValue = iter.value(); - - switch(qValue.type()) { - case QVariant::Bool: - scriptValue.setProperty(key, qValue.toBool()); - break; - case QVariant::Int: - scriptValue.setProperty(key, qValue.toInt()); - break; - case QVariant::Double: - scriptValue.setProperty(key, qValue.toDouble()); - break; - case QVariant::String: { - scriptValue.setProperty(key, scriptEngine.newVariant(qValue)); - break; - } - case QVariant::Map: { - QVariantMap childMap = qValue.toMap(); - scriptValue.setProperty(key, variantMapToQScriptValue(childMap, scriptEngine)); - break; - } - default: - qDebug() << "unhandled QScript type" << qValue.type(); - } - } - - return scriptValue; -} diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index c42633001f..5e75e2ae0d 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -46,7 +46,6 @@ Q_DECLARE_METATYPE(RayToEntityIntersectionResult) QScriptValue RayToEntityIntersectionResultToScriptValue(QScriptEngine* engine, const RayToEntityIntersectionResult& results); void RayToEntityIntersectionResultFromScriptValue(const QScriptValue& object, RayToEntityIntersectionResult& results); -QScriptValue variantMapToQScriptValue(QVariantMap& variantMap, QScriptEngine& scriptEngine); /// handles scripting of Entity commands from JS passed to assigned clients diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 42e74f0ca8..916e95e99d 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -15,7 +15,7 @@ #include "EntityTree.h" #include "EntitySimulation.h" -#include "EntityScriptingInterface.h" +#include "VariantMapToScriptValue.h" #include "AddEntityOperator.h" #include "MovingEntitiesOperator.h" @@ -1091,7 +1091,7 @@ bool EntityTree::readFromMap(QVariantMap& map) { foreach (QVariant entityVariant, entitiesQList) { // QVariantMap --> QScriptValue --> EntityItemProperties --> Entity QVariantMap entityMap = entityVariant.toMap(); - QScriptValue entityScriptValue = variantMapToQScriptValue(entityMap, scriptEngine); + QScriptValue entityScriptValue = variantMapToScriptValue(entityMap, scriptEngine); EntityItemProperties properties; EntityItemPropertiesFromScriptValue(entityScriptValue, properties); diff --git a/libraries/entities/src/RecurseOctreeToMapOperator.cpp b/libraries/entities/src/RecurseOctreeToMapOperator.cpp index 4017078118..afe28e17e0 100644 --- a/libraries/entities/src/RecurseOctreeToMapOperator.cpp +++ b/libraries/entities/src/RecurseOctreeToMapOperator.cpp @@ -43,22 +43,7 @@ bool RecurseOctreeToMapOperator::postRecursion(OctreeElement* element) { foreach (EntityItem* entityItem, entities) { EntityItemProperties properties = entityItem->getProperties(); - - // XXX this is copied out of EntityScriptingInterface::getEntityProperties - // is it needed here? - - // if (entityItem->getType() == EntityTypes::Model) { - // const FBXGeometry* geometry = getGeometryForEntity(entityItem); - // if (geometry) { - // properties.setSittingPoints(geometry->sittingPoints); - // Extents meshExtents = geometry->getUnscaledMeshExtents(); - // properties.setNaturalDimensions(meshExtents.maximum - meshExtents.minimum); - // } - // } - - QScriptValue qScriptValues = - EntityItemPropertiesToScriptValue(_engine, properties); - + QScriptValue qScriptValues = EntityItemPropertiesToScriptValue(_engine, properties); entitiesQList << qScriptValues.toVariant(); } _map["Entities"] = entitiesQList; diff --git a/libraries/octree/src/OctreePersistThread.cpp b/libraries/octree/src/OctreePersistThread.cpp index c2645f0207..02f46ee64b 100644 --- a/libraries/octree/src/OctreePersistThread.cpp +++ b/libraries/octree/src/OctreePersistThread.cpp @@ -148,7 +148,7 @@ bool OctreePersistThread::process() { qDebug() << "Loading Octree... lock file removed:" << lockFileName; } - persistantFileRead = _tree->readFromFile(_filename.toLocal8Bit().constData()); + persistantFileRead = _tree->readFromFile(qPrintable(_filename.toLocal8Bit())); _tree->pruneTree(); } _tree->unlock(); diff --git a/libraries/shared/src/VariantMapToScriptValue.cpp b/libraries/shared/src/VariantMapToScriptValue.cpp new file mode 100644 index 0000000000..6fa3fd04e6 --- /dev/null +++ b/libraries/shared/src/VariantMapToScriptValue.cpp @@ -0,0 +1,47 @@ +// +// VariantMapToScriptValue.cpp +// libraries/shared/src/ +// +// Created by Brad Hefta-Gaub on 12/6/13. +// Copyright 2013 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include +#include "VariantMapToScriptValue.h" + +QScriptValue variantMapToScriptValue(QVariantMap& variantMap, QScriptEngine& scriptEngine) { + QScriptValue scriptValue = scriptEngine.newObject(); + + for (QVariantMap::const_iterator iter = variantMap.begin(); iter != variantMap.end(); ++iter) { + QString key = iter.key(); + QVariant qValue = iter.value(); + + switch(qValue.type()) { + case QVariant::Bool: + scriptValue.setProperty(key, qValue.toBool()); + break; + case QVariant::Int: + scriptValue.setProperty(key, qValue.toInt()); + break; + case QVariant::Double: + scriptValue.setProperty(key, qValue.toDouble()); + break; + case QVariant::String: { + scriptValue.setProperty(key, scriptEngine.newVariant(qValue)); + break; + } + case QVariant::Map: { + QVariantMap childMap = qValue.toMap(); + scriptValue.setProperty(key, variantMapToScriptValue(childMap, scriptEngine)); + break; + } + default: + qDebug() << "unhandled QScript type" << qValue.type(); + } + } + + return scriptValue; +} diff --git a/libraries/shared/src/VariantMapToScriptValue.h b/libraries/shared/src/VariantMapToScriptValue.h new file mode 100644 index 0000000000..503f8c6490 --- /dev/null +++ b/libraries/shared/src/VariantMapToScriptValue.h @@ -0,0 +1,16 @@ +// +// VariantMapToScriptValue.h +// libraries/shared/src/ +// +// Created by Brad Hefta-Gaub on 12/6/13. +// Copyright 2013 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include +#include +#include + +QScriptValue variantMapToScriptValue(QVariantMap& variantMap, QScriptEngine& scriptEngine);