diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index 96f2383181..0b399377fe 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -867,7 +867,7 @@ bool Octree::readJSONFromStream( } OctreeEntitiesFileParser octreeParser; - octreeParser.relativeURL = relativeURL; + octreeParser.setRelativeURL(relativeURL); octreeParser.setEntitiesString(jsonBuffer); QVariantMap asMap; diff --git a/libraries/octree/src/OctreeEntitiesFileParser.cpp b/libraries/octree/src/OctreeEntitiesFileParser.cpp index 72cfd30ef9..b8b9aef4c9 100644 --- a/libraries/octree/src/OctreeEntitiesFileParser.cpp +++ b/libraries/octree/src/OctreeEntitiesFileParser.cpp @@ -240,9 +240,9 @@ bool OctreeEntitiesFileParser::readEntitiesArray(QVariantList& entitiesArray) { QJsonObject entityObject = entity.object(); // resolve urls starting with ./ or ../ - if (relativeURL.isEmpty() == false) { + if (!_relativeURL.isEmpty()) { bool isDirty = false; - + const QStringList urlKeys { // model "modelURL", @@ -280,9 +280,9 @@ bool OctreeEntitiesFileParser::readEntitiesArray(QVariantList& entitiesArray) { if (childObject.contains(childKey) && childObject[childKey].isString()) { const QString url = childObject[childKey].toString(); - + if (url.startsWith("./") || url.startsWith("../")) { - childObject[childKey] = relativeURL.resolved(url).toString(); + childObject[childKey] = _relativeURL.resolved(url).toString(); entityObject[entityKey] = childObject; isDirty = true; } @@ -293,7 +293,7 @@ bool OctreeEntitiesFileParser::readEntitiesArray(QVariantList& entitiesArray) { const QString url = entityObject[key].toString(); if (url.startsWith("./") || url.startsWith("../")) { - entityObject[key] = relativeURL.resolved(url).toString(); + entityObject[key] = _relativeURL.resolved(url).toString(); isDirty = true; } } diff --git a/libraries/octree/src/OctreeEntitiesFileParser.h b/libraries/octree/src/OctreeEntitiesFileParser.h index 39560710db..0000a76375 100644 --- a/libraries/octree/src/OctreeEntitiesFileParser.h +++ b/libraries/octree/src/OctreeEntitiesFileParser.h @@ -15,15 +15,15 @@ #define hifi_OctreeEntitiesFileParser_h #include <QByteArray> -#include <QVariant> #include <QUrl> +#include <QVariant> class OctreeEntitiesFileParser { public: void setEntitiesString(const QByteArray& entitiesContents); + void setRelativeURL(const QUrl& relativeURL) { _relativeURL = relativeURL; } bool parseEntities(QVariantMap& parsedEntities); std::string getErrorString() const; - QUrl relativeURL; private: int nextToken(); @@ -33,6 +33,7 @@ private: int findMatchingBrace() const; QByteArray _entitiesContents; + QUrl _relativeURL; int _position { 0 }; int _line { 1 }; int _entitiesLength { 0 };