Creating a ThumbnailProxyModel
The future AlbumWidget
view will display a grid of thumbnails with the pictures attached to the selected Album
. In Chapter 3, Dividing Your Project and Ruling Your Code, we designed the gallery-core
library to be agnostic of how a picture should be displayed: a Picture
class contains only a mUrl
field.
In other words, the generation of the thumbnails has to be done in gallery-desktop
rather than gallery-core
. We already have the PictureModel
class that is responsible for retrieving the Picture
information, so it would be great to be able to extend its behavior with the thumbnail data.
This is possible in Qt with the use of the QAbstractProxyModel
class and its subclasses. The goal of this class is to process data from a base QAbstractItemModel
(sorting, filtering, adding data, and so on) and present it to the view by proxying the original model. To take a database analogy, you can view it as a projection over a table.
The QAbstractProxyModel
class has two subclasses...