diff options
Diffstat (limited to 'src/core/api/qwebenginescript.cpp')
-rw-r--r-- | src/core/api/qwebenginescript.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/core/api/qwebenginescript.cpp b/src/core/api/qwebenginescript.cpp index e56017166..e3917566a 100644 --- a/src/core/api/qwebenginescript.cpp +++ b/src/core/api/qwebenginescript.cpp @@ -41,9 +41,12 @@ #include "user_script.h" #include <QtCore/QDebug> +#include <QtCore/QFile> using QtWebEngineCore::UserScript; +QT_BEGIN_NAMESPACE + /*! \class QWebEngineScript \inmodule QtWebEngineCore @@ -172,6 +175,37 @@ void QWebEngineScript::setName(const QString &scriptName) d->setName(scriptName); } + +QUrl QWebEngineScript::sourceUrl() const +{ + return d->sourceUrl(); +} + +void QWebEngineScript::setSourceUrl(const QUrl &url) +{ + if (url == sourceUrl()) + return; + + d->setSourceUrl(url); + + QFile file; + if (url.scheme().compare(QLatin1String("qrc"), Qt::CaseInsensitive) == 0) { + if (url.authority().isEmpty()) + file.setFileName(QLatin1Char(':') + url.path()); + return; + } else { + file.setFileName(url.toLocalFile()); + } + + if (!file.open(QIODevice::ReadOnly)) { + qWarning() << "Can't open user script " << url; + return; + } + + QString source = QString::fromUtf8(file.readAll()); + setSourceCode(source); +} + /*! Returns the source of the script. */ @@ -291,3 +325,5 @@ QDebug operator<<(QDebug d, const QWebEngineScript &script) return d.space(); } #endif + +QT_END_NAMESPACE |