Fix ScriptEngine not properly resolving paths

This commit is contained in:
Ryan Huffman 2016-09-26 15:37:51 -07:00
parent 32db63e177
commit 667a737018

View file

@ -25,6 +25,7 @@
#include <QtNetwork/QNetworkRequest> #include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkReply>
#include <QtScript/QScriptContextInfo>
#include <QtScript/QScriptValue> #include <QtScript/QScriptValue>
#include <QtScript/QScriptValueIterator> #include <QtScript/QScriptValueIterator>
@ -1091,14 +1092,19 @@ QUrl ScriptEngine::resolvePath(const QString& include) const {
return expandScriptUrl(url); return expandScriptUrl(url);
} }
QScriptContextInfo contextInfo { currentContext()->parentContext() };
// we apparently weren't a fully qualified url, so, let's assume we're relative // we apparently weren't a fully qualified url, so, let's assume we're relative
// to the original URL of our script // to the original URL of our script
QUrl parentURL; QUrl parentURL = contextInfo.fileName();
if (parentURL.isEmpty()) {
if (_parentURL.isEmpty()) { if (_parentURL.isEmpty()) {
parentURL = QUrl(_fileNameString); parentURL = QUrl(_fileNameString);
} else { } else {
parentURL = QUrl(_parentURL); parentURL = QUrl(_parentURL);
} }
}
// if the parent URL's scheme is empty, then this is probably a local file... // if the parent URL's scheme is empty, then this is probably a local file...
if (parentURL.scheme().isEmpty()) { if (parentURL.scheme().isEmpty()) {
parentURL = QUrl::fromLocalFile(_fileNameString); parentURL = QUrl::fromLocalFile(_fileNameString);