| digiKam Developer Documentation Professional Photo Management with the Power of Open Source

Loading...
Searching...
No Matches
Public Types | Signals | Public Member Functions | List of all members
Digikam::GeoModelHelper Class Referenceabstract

Helper class to access data in models. More...

Inheritance diagram for Digikam::GeoModelHelper:

## Public Types
enum | PropertyFlag { FlagNull = 0 , FlagVisible = 1 , FlagMovable = 2 , FlagSnaps = 4 }
typedef QFlags< PropertyFlag > | PropertyFlags

## Signals
void | signalModelChangedDrastically ()
void | signalThumbnailAvailableForIndex (const QPersistentModelIndex &index, const QPixmap &pixmap)
void | signalVisibilityChanged ()

## Public Member Functions
| 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)

## Detailed Description

`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:

- bestRepresentativeIndexFromList(): Find the item that should represent a group of items.
- pixmapFromRepresentativeIndex(): Find a thumbnail for an item.

## Member Function Documentation

## ◆ bestRepresentativeIndexFromList()

QPersistentModelIndex Digikam::GeoModelHelper::bestRepresentativeIndexFromList | ( | const QList< QPersistentModelIndex > & | list,
|  | const int | sortKey
| ) |  |
| virtual

Reimplemented in Digikam::MapViewModelHelper.

## ◆ itemCoordinates()

virtual bool Digikam::GeoModelHelper::itemCoordinates | ( | const QModelIndex & | index,
|  | GeoCoordinates *const | coordinates
| ) |  | const
| pure virtual

Implemented in Digikam::MapViewModelHelper.

## ◆ itemIcon()

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.

## ◆ model()

virtual QAbstractItemModel * Digikam::GeoModelHelper::model | ( |  | ) | const
| pure virtual

Implemented in Digikam::MapViewModelHelper, Digikam::ItemGPSModelHelper, Digikam::GPSBookmarkModelHelper, and Digikam::GPSGeoIfaceModelHelper.

## ◆ onIndicesClicked()

void Digikam::GeoModelHelper::onIndicesClicked | ( | const QList< QPersistentModelIndex > & | clickedIndices | ) |
| virtual

Reimplemented in Digikam::MapViewModelHelper.

## ◆ pixmapFromRepresentativeIndex()

QPixmap Digikam::GeoModelHelper::pixmapFromRepresentativeIndex | ( | const QPersistentModelIndex & | index,
|  | const QSize & | size
| ) |  |
| virtual

Reimplemented in Digikam::MapViewModelHelper, Digikam::ItemGPSModelHelper, and Digikam::GPSGeoIfaceModelHelper.

## ◆ selectionModel()

virtual QItemSelectionModel * Digikam::GeoModelHelper::selectionModel | ( |  | ) | const
| pure virtual

Implemented in Digikam::MapViewModelHelper.