diff --git a/examples/utilities/tools/render/PlotPerf.qml b/examples/utilities/tools/render/plotperf/PlotPerf.qml similarity index 100% rename from examples/utilities/tools/render/PlotPerf.qml rename to examples/utilities/tools/render/plotperf/PlotPerf.qml diff --git a/examples/utilities/tools/render/plotperf/qmldir b/examples/utilities/tools/render/plotperf/qmldir new file mode 100644 index 0000000000..5668f5034c --- /dev/null +++ b/examples/utilities/tools/render/plotperf/qmldir @@ -0,0 +1 @@ +PlotPerf 1.0 PlotPerf.qml \ No newline at end of file diff --git a/examples/utilities/tools/render/stats.qml b/examples/utilities/tools/render/stats.qml index 142b5e25e2..aacc896444 100644 --- a/examples/utilities/tools/render/stats.qml +++ b/examples/utilities/tools/render/stats.qml @@ -10,7 +10,7 @@ // import QtQuick 2.5 import QtQuick.Controls 1.4 - +import "plotperf" Item { id: statsUI diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index e5ecd9ce92..83da078ddd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2930,14 +2930,7 @@ void Application::saveSettings() { bool Application::importEntities(const QString& urlOrFilename) { _entityClipboard->eraseAllOctreeElements(); - QUrl url(urlOrFilename); - - // if the URL appears to be invalid or relative, then it is probably a local file - if (!url.isValid() || url.isRelative()) { - url = QUrl::fromLocalFile(urlOrFilename); - } - - bool success = _entityClipboard->readFromURL(url.toString()); + bool success = _entityClipboard->readFromURL(urlOrFilename); if (success) { // FIXME _entityClipboard->remapIDs(); _entityClipboard->reaverageOctreeElements(); diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp index 4d89464460..ffbc2e6709 100644 --- a/libraries/octree/src/Octree.cpp +++ b/libraries/octree/src/Octree.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -1674,35 +1675,24 @@ bool Octree::readJSONFromGzippedFile(QString qFileName) { } bool Octree::readFromURL(const QString& urlString) { - bool readOk = false; + auto request = std::unique_ptr(ResourceManager::createResourceRequest(this, urlString)); - // determine if this is a local file or a network resource - QUrl url(urlString); - - if (url.isLocalFile()) { - readOk = readFromFile(qPrintable(url.toLocalFile())); - } else { - QNetworkRequest request; - request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT); - request.setUrl(url); - - QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance(); - QNetworkReply* reply = networkAccessManager.get(request); - - qCDebug(octree) << "Downloading svo at" << qPrintable(urlString); - - QEventLoop loop; - QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit())); - loop.exec(); - - if (reply->error() == QNetworkReply::NoError) { - int resourceSize = reply->bytesAvailable(); - QDataStream inputStream(reply); - readOk = readFromStream(resourceSize, inputStream); - } - delete reply; + if (!request) { + return false; } - return readOk; + + QEventLoop loop; + connect(request.get(), &ResourceRequest::finished, &loop, &QEventLoop::quit); + request->send(); + loop.exec(); + + if (request->getResult() != ResourceRequest::Success) { + return false; + } + + auto data = request->getData(); + QDataStream inputStream(data); + return readFromStream(data.size(), inputStream); }