|
|
| GeoModelHelper (QObject *const parent=nullptr) |
| |
| virtual QPersistentModelIndex | bestRepresentativeIndexFromList (const QList< QPersistentModelIndex > &list, const int sortKey) |
| |
| virtual bool | itemCoordinates (const QModelIndex &index, GeoCoordinates *const coordinates) const =0 |
| |
|
virtual PropertyFlags | itemFlags (const QModelIndex &index) const |
| |
| virtual bool | itemIcon (const QModelIndex &index, QPoint *const offset, QSize *const size, QPixmap *const pixmap, QUrl *const url) const |
| | these are necessary for ungrouped models
|
| |
| virtual QAbstractItemModel * | model () const =0 |
| | these are necessary for grouped and ungrouped models
|
| |
|
virtual PropertyFlags | modelFlags () const |
| |
| virtual void | onIndicesClicked (const QList< QPersistentModelIndex > &clickedIndices) |
| |
|
virtual void | onIndicesMoved (const QList< QPersistentModelIndex > &movedIndices, const GeoCoordinates &targetCoordinates, const QPersistentModelIndex &targetSnapIndex) |
| |
| virtual QPixmap | pixmapFromRepresentativeIndex (const QPersistentModelIndex &index, const QSize &size) |
| | these are used by MarkerModel for grouped models
|
| |
| virtual QItemSelectionModel * | selectionModel () const =0 |
| |
|
virtual void | snapItemsTo (const QModelIndex &targetIndex, const QList< QModelIndex > &snappedIndices) |
| |
|
void | snapItemsTo (const QModelIndex &targetIndex, const QList< QPersistentModelIndex > &snappedIndices) |
| |
GeoModelHelper is used to access data held in models, which is not suitable for transfer using the the Qt-style API, like coordinates or custom sized thumbnails.
The basic functions which have to be implemented are:
- model(): Returns a pointer to the model
- selectionModel(): Returns a pointer to the selection model. It may return a null-pointer if no selection model is used.
- itemCoordinates(): Returns the coordinates for a given item index, if it has any.
- modelFlags(): Returns flags for the model.
For ungrouped models, the following functions should also be implemented:
- itemIcon(): Returns an icon for an index, and an offset to the 'center' of the item.
- itemFlags(): Returns flags for individual items.
- snapItemsTo(): Grouped items have been moved and should snap to an index.
For grouped models which are accessed by MarkerModel, the following functions should be implemented:
| bool Digikam::GeoModelHelper::itemIcon |
( |
const QModelIndex & |
index, |
|
|
QPoint *const |
offset, |
|
|
QSize *const |
size, |
|
|
QPixmap *const |
pixmap, |
|
|
QUrl *const |
url |
|
) |
| const |
|
virtual |
Returns the icon for an ungrouped marker.
The icon can either be returned as a URL to an image, or as a QPixmap. If the caller can handle URLs (for example, to display them in HTML), he can provide the URL parameter. However, the GeoModelHelper may still choose to return a QPixmap instead, if no URL is available.
- Parameters
-
| index | Modelindex of the marker. |
| offset | Offset of the zero point in the icon, given from the top-left. |
| size | the size of the icon, only populated if a URL is returned. |
| pixmap | Holder for the pixmap of the icon. |
| url | URL of the icon if available. |
Reimplemented in Digikam::GPSBookmarkModelHelper.