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);