From 667a737018b1cf0f75d52c01b51b0e21c7c8e029 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Mon, 26 Sep 2016 15:37:51 -0700 Subject: [PATCH] Fix ScriptEngine not properly resolving paths --- libraries/script-engine/src/ScriptEngine.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 160ad77197..1919da81e4 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -1091,14 +1092,19 @@ QUrl ScriptEngine::resolvePath(const QString& include) const { return expandScriptUrl(url); } + QScriptContextInfo contextInfo { currentContext()->parentContext() }; + // we apparently weren't a fully qualified url, so, let's assume we're relative // to the original URL of our script - QUrl parentURL; - if (_parentURL.isEmpty()) { - parentURL = QUrl(_fileNameString); - } else { - parentURL = QUrl(_parentURL); + QUrl parentURL = contextInfo.fileName(); + if (parentURL.isEmpty()) { + if (_parentURL.isEmpty()) { + parentURL = QUrl(_fileNameString); + } else { + parentURL = QUrl(_parentURL); + } } + // if the parent URL's scheme is empty, then this is probably a local file... if (parentURL.scheme().isEmpty()) { parentURL = QUrl::fromLocalFile(_fileNameString);