diff options
author | Michael Brasser <michael.brasser@live.com> | 2013-03-26 20:29:10 -0500 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-04-02 10:29:34 +0200 |
commit | 3e0bcbff98346385ec32bc951cd958d1c1bfb371 (patch) | |
tree | 6c23d33d60396e73134b9cadb3f2abe08d7bea80 /examples/quick/textureprovider/etcprovider.cpp | |
parent | 5eae605a475db96ed16d81101e00e736efe9f202 (diff) |
Update EtcProvider example to support configurable base url.
Change-Id: Idb047bc7bf2c9f1c62c4749cb416bdf267e66e17
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'examples/quick/textureprovider/etcprovider.cpp')
-rw-r--r-- | examples/quick/textureprovider/etcprovider.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/examples/quick/textureprovider/etcprovider.cpp b/examples/quick/textureprovider/etcprovider.cpp index 507965ca9a..52c2c17cfe 100644 --- a/examples/quick/textureprovider/etcprovider.cpp +++ b/examples/quick/textureprovider/etcprovider.cpp @@ -44,6 +44,7 @@ #include <QFile> #include <QDebug> #include <qopenglfunctions.h> +#include <qqmlfile.h> //#define ETC_DEBUG @@ -168,10 +169,14 @@ QQuickTextureFactory *EtcProvider::requestTexture(const QString &id, QSize *size size->setHeight(0); size->setWidth(0); - // resolve paths relative to qrc file - QFile file(QLatin1String(":/textureprovider/") + id); + QUrl url = QUrl(id); + if (url.isRelative() && !m_baseUrl.isEmpty()) + url = m_baseUrl.resolved(url); + QString path = QQmlFile::urlToLocalFileOrQrc(url); + + QFile file(path); #ifdef ETC_DEBUG - qDebug() << "requestTexture opening file: " << id; + qDebug() << "requestTexture opening file: " << path; #endif if (file.open(QIODevice::ReadOnly)) { ret = new QEtcTextureFactory; @@ -200,3 +205,8 @@ QQuickTextureFactory *EtcProvider::requestTexture(const QString &id, QSize *size return ret; } + +void EtcProvider::setBaseUrl(const QUrl &base) +{ + m_baseUrl = base; +} |