digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
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:

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
indexModelindex of the marker.
offsetOffset of the zero point in the icon, given from the top-left.
sizethe size of the icon, only populated if a URL is returned.
pixmapHolder for the pixmap of the icon.
urlURL of the icon if available.

Reimplemented in Digikam::GPSBookmarkModelHelper.

◆ model()

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

◆ 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

◆ selectionModel()

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

Implemented in Digikam::MapViewModelHelper.