From cfa847ba546006168a2da807026dc6a9f754f5e2 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Thu, 31 Mar 2016 09:45:28 -0700 Subject: [PATCH] don't put empty folders at end of scripts tree. allow /~/ to work from outside scripts --- libraries/script-engine/src/BatchLoader.cpp | 6 ++++-- libraries/script-engine/src/ScriptEngine.cpp | 5 ++--- libraries/script-engine/src/ScriptEngines.cpp | 2 +- libraries/script-engine/src/ScriptsModel.cpp | 3 +++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libraries/script-engine/src/BatchLoader.cpp b/libraries/script-engine/src/BatchLoader.cpp index ad3f422813..f3e6242216 100644 --- a/libraries/script-engine/src/BatchLoader.cpp +++ b/libraries/script-engine/src/BatchLoader.cpp @@ -18,6 +18,7 @@ #include #include #include "ResourceManager.h" +#include "ScriptEngines.h" BatchLoader::BatchLoader(const QList& urls) : QObject(), @@ -34,8 +35,9 @@ void BatchLoader::start() { } _started = true; - - for (const auto& url : _urls) { + + for (const auto& rawURL : _urls) { + QUrl url = expandScriptUrl(normalizeScriptURL(rawURL)); auto request = ResourceManager::createResourceRequest(this, url); if (!request) { _data.insert(url, QString()); diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 94662308fd..c7a3396078 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -220,11 +220,10 @@ void ScriptEngine::loadURL(const QUrl& scriptURL, bool reload) { return; } - _fileNameString = scriptURL.toString(); + QUrl url = expandScriptUrl(normalizeScriptURL(scriptURL)); + _fileNameString = url.toString(); _isReloading = reload; - QUrl url(scriptURL); - bool isPending; auto scriptCache = DependencyManager::get(); scriptCache->getScript(url, this, isPending, reload); diff --git a/libraries/script-engine/src/ScriptEngines.cpp b/libraries/script-engine/src/ScriptEngines.cpp index 16301dc890..f22d048661 100644 --- a/libraries/script-engine/src/ScriptEngines.cpp +++ b/libraries/script-engine/src/ScriptEngines.cpp @@ -429,7 +429,7 @@ ScriptEngine* ScriptEngines::loadScript(const QUrl& scriptFilename, bool isUserL connect(scriptEngine, &ScriptEngine::errorLoadingScript, this, &ScriptEngines::onScriptEngineError); // get the script engine object to load the script at the designated script URL - scriptEngine->loadURL(QUrl(expandScriptUrl(scriptUrl.toString())), reload); + scriptEngine->loadURL(scriptUrl, reload); } return scriptEngine; diff --git a/libraries/script-engine/src/ScriptsModel.cpp b/libraries/script-engine/src/ScriptsModel.cpp index 9513a333bc..0c58966e81 100644 --- a/libraries/script-engine/src/ScriptsModel.cpp +++ b/libraries/script-engine/src/ScriptsModel.cpp @@ -309,6 +309,9 @@ void ScriptsModel::rebuildTree() { QString hash; QStringList pathList = script->getLocalPath().split(tr("/")); pathList.removeLast(); + if (pathList.isEmpty()) { + continue; + } QStringList::const_iterator pathIterator; for (pathIterator = pathList.constBegin(); pathIterator != pathList.constEnd(); ++pathIterator) { hash.append(*pathIterator + "/");