QQmlFileSelector Class
A convenience class for applying a QFileSelector to QML file loading More...
Header: | #include <QQmlFileSelector> |
qmake: | QT += qml |
Since: | Qt 5.2 |
Inherits: | QQmlAbstractUrlInterceptor. |
Public Functions
QQmlFileSelector(QObject * parent = 0) | |
void | setSelector(QFileSelector * selector) |
- 1 public function inherited from QQmlAbstractUrlInterceptor
Reimplemented Protected Functions
virtual QUrl | intercept(const QUrl & path, DataType type) |
Detailed Description
A convenience class for applying a QFileSelector to QML file loading
QQmlFileSelector is a QQmlAbstractUrlInterceptor which will automatically apply a QFileSelector to qml file and asset paths.
It is used as follows:
QQmlEngine engine; QQmlFileSelector selector; engine.setUrlInterceptor(&selector);
Then you can swap out files like so:
main.qml Component.qml asset.png +unix/Component.qml +mac/asset.png
In this example, main.qml will normally use Component.qml for the Component type. However on a unix platform, the unix selector will be present and the +unix/Component.qml version will be used instead. Note that this acts like swapping out Component.qml with +unix/Component.qml, so when using Component.qml you should not need to alter any paths based on which version was selected.
For example, to pass the "asset.png" file path around you would refer to it just as "asset.png" in all of main.qml, Component.qml, and +linux/Component.qml. It will be replaced with +mac/asset.png on Mac platforms in all cases.
For a list of available selectors, see QFileSelector.
Your platform may also provide additional selectors for you to use. As specified by QFileSelector, directories used for selection must start with a '+' character, so you will not accidentally trigger this feature unless you have directories with such names inside your project.
Member Function Documentation
QQmlFileSelector::QQmlFileSelector(QObject * parent = 0)
Creates a new QQmlFileSelector, which includes its own QFileSelector.
QUrl QQmlFileSelector::intercept(const QUrl & path, DataType type) [virtual protected]
void QQmlFileSelector::setSelector(QFileSelector * selector)
Sets a different QFileSelector instance for use by the QQmlFileSelector. QQmlFileSelector does not take ownership of the new QFileSelector. To reset QQmlFileSelector to use its internal QFileSelector instance, call setSelector(0).