digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::ItemListModel Class Reference
+ Inheritance diagram for Digikam::ItemListModel:

Public Member Functions

 ItemListModel (QWidget *const parent)
 
- Public Member Functions inherited from Digikam::ItemThumbnailModel
 ItemThumbnailModel (QWidget *const parent)
 An ItemModel that supports thumbnail loading.
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 Handles the ThumbnailRole.
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::DisplayRole) override
 You can override the current thumbnail size by giving an integer value for ThumbnailRole.
 
void setEmitDataChanged (bool emitSignal)
 Enable emitting dataChanged() when a thumbnail becomes available.
 
void setExifRotate (bool rotate)
 
void setPreloadThumbnails (bool preload)
 Enable preloading of thumbnails: If preloading is enabled, for every entry in the model a thumbnail generation is started.
 
void setPreloadThumbnailSize (const ThumbnailSize &thumbSize)
 If you want to fix a size for preloading, do it here.
 
void setThumbnailLoadThread (ThumbnailLoadThread *const thread)
 Enable thumbnail loading and set the thread that shall be used.
 
void setThumbnailSize (const ThumbnailSize &thumbSize)
 Set the thumbnail size to use.
 
ThumbnailLoadThreadthumbnailLoadThread () const
 
ThumbnailSize thumbnailSize () const
 
- Public Member Functions inherited from Digikam::ItemModel
 ItemModel (QObject *const parent=nullptr)
 
void addItemInfo (const ItemInfo &info)
 Main entry point for subclasses adding image infos to the model.
 
void addItemInfos (const QList< ItemInfo > &infos)
 
void addItemInfos (const QList< ItemInfo > &infos, const QList< QVariant > &extraValues)
 
void addItemInfosSynchronously (const QList< ItemInfo > &infos)
 
void addItemInfosSynchronously (const QList< ItemInfo > &infos, const QList< QVariant > &extraValues)
 
void addItemInfoSynchronously (const ItemInfo &info)
 addItemInfo() is asynchronous if a prepocessor is set.
 
void clearItemInfos ()
 Clears image infos and resets model.
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
void ensureHasGroupedImages (const ItemInfo &groupLeader)
 Ensure that all images grouped on the given leader are contained in the model.
 
void ensureHasItemInfo (const ItemInfo &info)
 Add the given entries.
 
void ensureHasItemInfos (const QList< ItemInfo > &infos)
 
void ensureHasItemInfos (const QList< ItemInfo > &infos, const QList< QVariant > &extraValues)
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
bool hasImage (const ItemInfo &info) const
 
bool hasImage (const ItemInfo &info, const QVariant &extraValue) const
 
bool hasImage (qlonglong id) const
 
bool hasImage (qlonglong id, const QVariant &extraValue) const
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
qlonglong imageId (const QModelIndex &index) const
 
qlonglong imageId (int row) const
 
QList< qlonglong > imageIds () const
 
QList< qlonglong > imageIds (const QList< QModelIndex > &indexes) const
 
ItemInfo imageInfo (const QModelIndex &index) const
 
ItemInfo imageInfo (const QString &filePath) const
 
ItemInfo imageInfo (int row) const
 
ItemInfoimageInfoRef (const QModelIndex &index) const
 
ItemInfoimageInfoRef (int row) const
 
QList< ItemInfoimageInfos () const
 
QList< ItemInfoimageInfos (const QList< QModelIndex > &indexes) const
 
QList< ItemInfoimageInfos (const QString &filePath) const
 
QModelIndex index (int row, int column=0, const QModelIndex &parent=QModelIndex()) const override
 
QList< QModelIndex > indexesForImageId (qlonglong id) const
 
QList< QModelIndex > indexesForItemInfo (const ItemInfo &info) const
 
QList< QModelIndex > indexesForPath (const QString &filePath) const
 
QModelIndex indexForImageId (qlonglong id) const
 
QModelIndex indexForImageId (qlonglong id, const QVariant &extraValue) const
 
QModelIndex indexForItemInfo (const ItemInfo &info) const
 
QModelIndex indexForItemInfo (const ItemInfo &info, const QVariant &extraValue) const
 
QModelIndex indexForPath (const QString &filePath) const
 
bool isEmpty () const
 
bool isRefreshing () const
 
int itemCount () const
 
bool keepsFilePathCache () const
 
int numberOfIndexesForImageId (qlonglong id) const
 
int numberOfIndexesForItemInfo (const ItemInfo &info) const
 
void removeIndex (const QModelIndex &indexes)
 Directly remove the given indexes or infos from the model.
 
void removeIndexes (const QList< QModelIndex > &indexes)
 
void removeItemInfo (const ItemInfo &info)
 
void removeItemInfos (const QList< ItemInfo > &infos)
 
void removeItemInfos (const QList< ItemInfo > &infos, const QList< QVariant > &extraValues)
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
void setItemInfos (const QList< ItemInfo > &infos)
 Clears and adds the infos.
 
void setKeepsFilePathCache (bool keepCache)
 If a cache is kept, lookup by file path is fast, without a cache it is O(n).
 
DECLARE_MODEL_DRAG_DROP_METHODS void setPreprocessor (QObject *const processor)
 Install an object as a preprocessor for ItemInfos added to this model.
 
void setSendRemovalSignals (bool send)
 Enable sending of imageInfosAboutToBeRemoved and imageInfosRemoved signals.
 
void setWatchFlags (const DatabaseFields::Set &set)
 Set a set of database fields to watch.
 
QList< ItemInfouniqueItemInfos () const
 
void unsetPreprocessor (QObject *const processor)
 
- Public Member Functions inherited from Digikam::DragDropModelImplementation
 DragDropModelImplementation ()=default
 A class providing a sample implementation for a QAbstractItemModel redirecting drag-and-drop support to a handler.
 
virtual Qt::ItemFlags dragDropFlags (const QModelIndex &index) const
 Call from your flags() method, adding the relevant drag drop flags.
 
Qt::ItemFlags dragDropFlagsV2 (const QModelIndex &index) const
 This is an alternative approach to dragDropFlags().
 
AbstractItemDragDropHandlerdragDropHandler () const
 
bool dropMimeData (const QMimeData *, Qt::DropAction, int, int, const QModelIndex &)
 
virtual bool isDragEnabled (const QModelIndex &index) const
 
virtual bool isDropEnabled (const QModelIndex &index) const
 
QMimeData * mimeData (const QModelIndexList &indexes) const
 
QStringList mimeTypes () const
 
void setDragDropHandler (AbstractItemDragDropHandler *handler)
 Set a drag drop handler.
 
Qt::DropActions supportedDropActions () const
 Implements the relevant QAbstractItemModel methods for drag and drop.
 

Protected Slots

void slotCollectionImageChange (const CollectionImageChangeset &changeset)
 
- Protected Slots inherited from Digikam::ItemThumbnailModel
void slotThumbnailLoaded (const LoadingDescription &loadingDescription, const QPixmap &thumb)
 
void slotThumbnailLoadedFromStorage (const LoadingDescription &loadingDescription, const QPixmap &thumb)
 
- Protected Slots inherited from Digikam::ItemModel
virtual void slotAlbumChange (const AlbumChangeset &changeset)
 
virtual void slotImageChange (const ImageChangeset &changeset)
 
virtual void slotImageTagChange (const ImageTagChangeset &changeset)
 

Additional Inherited Members

- Public Types inherited from Digikam::ItemModel
enum  ItemModelRoles {
  ItemModelPointerRole = Qt::UserRole , ItemModelInternalId = Qt::UserRole + 1 , ThumbnailRole = Qt::UserRole + 2 , CreationDateRole = Qt::UserRole + 3 ,
  ExtraDataRole = Qt::UserRole + 5 , ExtraDataDuplicateCount = Qt::UserRole + 6 , LTLeftPanelRole = Qt::UserRole + 50 , LTRightPanelRole = Qt::UserRole + 51 ,
  SubclassRoles = Qt::UserRole + 100 , FilterModelRoles = Qt::UserRole + 500
}
 
- Public Slots inherited from Digikam::ItemThumbnailModel
void preloadAllThumbnails ()
 
void preloadThumbnails (const QList< ItemInfo > &)
 Preload thumbnail for the given infos resp.
 
void preloadThumbnails (const QList< QModelIndex > &)
 
- Public Slots inherited from Digikam::ItemModel
void reAddingFinished ()
 
void reAddItemInfos (const QList< ItemInfo > &infos, const QList< QVariant > &extraValues)
 
- Signals inherited from Digikam::ItemThumbnailModel
void thumbnailAvailable (const QModelIndex &index, int requestedSize)
 
void thumbnailFailed (const QModelIndex &index, int requestedSize)
 
- Signals inherited from Digikam::ItemModel
void allRefreshingFinished ()
 Signals that the model has finished currently with all scheduled refreshing, full or incremental, and all preprocessing.
 
void imageChange (const ImageChangeset &, const QItemSelection &)
 If an ImageChangeset affected indexes of this model with changes as set in watchFlags(), this signal contains the changeset and the affected indexes.
 
void imageInfosAboutToBeAdded (const QList< ItemInfo > &infos)
 Informs that ItemInfos will be added to the model.
 
void imageInfosAboutToBeRemoved (const QList< ItemInfo > &infos)
 Informs that ItemInfos will be removed from the model.
 
void imageInfosAdded (const QList< ItemInfo > &infos)
 Informs that ItemInfos have been added to the model.
 
void imageInfosRemoved (const QList< ItemInfo > &infos)
 Informs that ItemInfos have been removed from the model.
 
void imageTagChange (const ImageTagChangeset &, const QItemSelection &)
 If an ImageTagChangeset affected indexes of this model, this signal contains the changeset and the affected indexes.
 
void preprocess (const QList< ItemInfo > &infos, const QList< QVariant > &)
 Connect to this signal only if you are the current preprocessor.
 
void processAdded (const QList< ItemInfo > &infos, const QList< QVariant > &)
 
void readyForIncrementalRefresh ()
 Signals that the model is right now ready to start an incremental refresh.
 
- Static Public Member Functions inherited from Digikam::ItemModel
static qlonglong retrieveImageId (const QModelIndex &index)
 
static ItemInfo retrieveItemInfo (const QModelIndex &index)
 Retrieves the imageInfo object from the data() method of the given index.
 
- Protected Member Functions inherited from Digikam::ItemThumbnailModel
void imageInfosCleared () override
 Called when the internal storage is cleared.
 
- Protected Member Functions inherited from Digikam::ItemModel
void emitDataChangedForAll ()
 
void emitDataChangedForSelection (const QItemSelection &selection)
 
void finishIncrementalRefresh ()
 
void finishRefresh ()
 
bool hasIncrementalRefreshPending () const
 
virtual void prepareImageInfosAboutToBeRemoved (int, int)
 Called before rowsAboutToBeRemoved.
 
void requestIncrementalRefresh ()
 As soon as the model is ready to start an incremental refresh, the signal readyForIncrementalRefresh() will be emitted.
 
void startIncrementalRefresh ()
 Starts an incremental refresh operation.
 
void startRefresh ()
 Subclasses that add ItemInfos in batches shall call startRefresh() when they start sending batches and finishRefresh() when they have finished.
 
- Protected Attributes inherited from Digikam::DragDropModelImplementation
AbstractItemDragDropHandlerm_dragDropHandler = nullptr
 

Member Function Documentation

◆ slotCollectionImageChange

void Digikam::ItemListModel::slotCollectionImageChange ( const CollectionImageChangeset changeset)
protectedslot
Note
: necessary methods to add and remove ItemInfos to the model are inherited from ItemModel. ItemModel::imageInfosRemoved() is emitted when images are removed from the model because they are removed in the database.