Loading images with an ImageProvider
It is now time to display the thumbnails for our freshly persisted album. These thumbnails have to be loaded somehow. Because our application is targeted at mobile devices, we cannot afford to freeze the UI thread while loading thumbnails. We would either hog the CPU or be killed by the OS, neither of which are desirable destinies for gallery-mobile
. Qt provides a very handy class to handle the image loading: QQuickImageProvider
.
The QQuickImageProvider
class provides an interface to load the QPixmap
class in your QML code in an asynchronous manner. This class automatically spawns threads to load the QPixmap
class and you simply have to implement the function requestPixmap()
. There is more to it, QQuickImageProvider
caches by default the requested pixmap to avoid hitting the data source too much.
Our thumbnails must be loaded from the PictureModel
element, which gives access to the fileUrl
of a given Picture
. Our implementation of r
QQuickImageProvider will...