![]() |
digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
|
Public Types | |
enum | ShowfotoItemModelRoles { ShowfotoItemModelPointerRole = Qt::UserRole , ShowfotoItemModelInternalId = Qt::UserRole + 1 , ThumbnailRole = Qt::UserRole + 2 , ExtraDataRole = Qt::UserRole + 3 , ExtraDataDuplicateCount = Qt::UserRole + 6 , FilterModelRoles = Qt::UserRole + 100 } |
Public Slots | |
void | reAddingFinished () |
void | reAddShowfotoItemInfos (const ShowfotoItemInfoList &infos) |
void | slotFileDeleted (const QString &folder, const QString &file, bool status) |
void | slotFileUploaded (const ShowfotoItemInfo &info) |
Signals | |
void | allRefreshingFinished () |
Signals that the model has finished currently with all scheduled refreshing, full or incremental, and all preprocessing. | |
void | itemInfosAboutToBeAdded (const QList< ShowfotoItemInfo > &infos) |
Informs that ItemInfos will be added to the model. | |
void | itemInfosAboutToBeRemoved (const QList< ShowfotoItemInfo > &infos) |
Informs that ShowfotoItemInfos will be removed from the model. | |
void | itemInfosAdded (const QList< ShowfotoItemInfo > &infos) |
Informs that ItemInfos have been added to the model. | |
void | itemInfosRemoved (const QList< ShowfotoItemInfo > &infos) |
Informs that ShowfotoItemInfos have been removed from the model. | |
void | preprocess (const QList< ShowfotoItemInfo > &infos) |
Connect to this signal only if you are the current preprocessor. | |
void | processAdded (const QList< ShowfotoItemInfo > &infos) |
void | readyForIncrementalRefresh () |
Signals that the model is right now ready to start an incremental refresh. | |
Public Member Functions | |
ShowfotoItemModel (QObject *const parent) | |
void | addShowfotoItemInfo (const ShowfotoItemInfo &info) |
void | addShowfotoItemInfos (const QList< ShowfotoItemInfo > &infos) |
void | addShowfotoItemInfosSynchronously (const QList< ShowfotoItemInfo > &infos) |
void | addShowfotoItemInfoSynchronously (const ShowfotoItemInfo &info) |
addShowfotoItemInfo() is asynchronous if a prepocessor is set. | |
void | clearShowfotoItemInfos () |
Clears the ShowfotoItemInfos and resets the model. | |
QVariant | data (const QModelIndex &index, int role) const override |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
bool | hasImage (const ShowfotoItemInfo &info) const |
bool | hasImage (qlonglong id) const |
QVariant | headerData (int section, Qt::Orientation orientation, int role) const override |
QModelIndex | index (int row, int column, const QModelIndex &parent) const override |
QList< QModelIndex > | indexesForShowfotoItemId (qlonglong id) const |
QList< QModelIndex > | indexesForShowfotoItemInfo (const ShowfotoItemInfo &info) const |
QList< QModelIndex > | indexesForUrl (const QUrl &fileUrl) const |
QModelIndex | indexForShowfotoItemId (qlonglong id) const |
QModelIndex | indexForShowfotoItemInfo (const ShowfotoItemInfo &info) const |
Return the index of a given ShowfotoItemInfo, if it exists in the model. | |
QModelIndex | indexForUrl (const QUrl &fileUrl) const |
Returns the index or ShowfotoItemInfo object from the underlying data for the given file url. | |
bool | isEmpty () const |
int | numberOfIndexesForShowfotoItemId (qlonglong id) const |
int | numberOfIndexesForShowfotoItemInfo (const ShowfotoItemInfo &info) const |
void | removeIndex (const QModelIndex &index) |
Remove the given infos or indexes directly from the model. | |
void | removeIndexs (const QList< QModelIndex > &indexes) |
void | removeShowfotoItemInfo (const ShowfotoItemInfo &info) |
void | removeShowfotoItemInfos (const QList< ShowfotoItemInfo > &infos) |
int | rowCount (const QModelIndex &parent) const override |
QAbstractListModel implementations. | |
void | setKeepsFileUrlCache (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 | setSendRemovalSignals (bool send) |
DragDrop methods. | |
void | setShowfotoItemInfos (const QList< ShowfotoItemInfo > &infos) |
Clears and adds infos. | |
qlonglong | showfotoItemId (const QModelIndex &index) const |
qlonglong | showfotoItemId (int row) const |
QList< qlonglong > | showfotoItemIds () const |
QList< qlonglong > | showfotoItemIds (const QList< QModelIndex > &indexes) const |
ShowfotoItemInfo | showfotoItemInfo (const QModelIndex &index) const |
Returns the ShowfotoItemInfo object, reference from the underlying data pointed to by the index. | |
ShowfotoItemInfo | showfotoItemInfo (const QUrl &fileUrl) const |
ShowfotoItemInfo | showfotoItemInfo (int row) const |
Returns the ShowfotoItemInfo object, reference from the underlying data of the given row (parent is the invalid QModelIndex, column is 0). | |
ShowfotoItemInfo & | showfotoItemInfoRef (const QModelIndex &index) const |
ShowfotoItemInfo & | showfotoItemInfoRef (int row) const |
QList< ShowfotoItemInfo > | showfotoItemInfos () const |
ShowfotoItemInfoList | showfotoItemInfos (const QList< QModelIndex > &indexes) const |
QList< ShowfotoItemInfo > | showfotoItemInfos (const QUrl &fileUrl) const |
QList< ShowfotoItemInfo > | uniqueShowfotoItemInfos () const |
![]() | |
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(). | |
AbstractItemDragDropHandler * | dragDropHandler () 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. | |
Static Public Member Functions | |
static qlonglong | retrieveShowfotoItemId (const QModelIndex &index) |
static ShowfotoItemInfo | retrieveShowfotoItemInfo (const QModelIndex &index) |
Retrieve the ShowfotoItemInfo object from the data() function of the given index The index may be from a QSortFilterProxyModel as long as an ShowfotoItemModel is at the end. | |
Protected Member Functions | |
void | emitDataChangedForAll () |
void | emitDataChangedForSelections (const QItemSelection &selection) |
void | finishIncrementalRefresh () |
void | requestIncrementalRefresh () |
As soon as the model is ready to start an incremental refresh, the signal readyForIncrementalRefresh() will be emitted. | |
virtual void | showfotoItemInfosAboutToBeRemoved (int, int) |
Called before rowsAboutToBeRemoved. | |
virtual void | showfotoItemInfosCleared () |
Called when the internal storage is cleared. | |
void | startIncrementalRefresh () |
Starts an incremental refresh operation. | |
Additional Inherited Members | |
![]() | |
AbstractItemDragDropHandler * | m_dragDropHandler = nullptr |
void ShowFoto::ShowfotoItemModel::addShowfotoItemInfoSynchronously | ( | const ShowfotoItemInfo & | info | ) |
This method first adds the info, synchronously. Only afterwards, the preprocessor will have the opportunity to process it. This method also bypasses any incremental updates.
|
signal |
The model is in polished, clean situation right now.
QModelIndex ShowFoto::ShowfotoItemModel::indexForUrl | ( | const QUrl & | fileUrl | ) | const |
In case of multiple occurrences of the same file, the simpler overrides returns any one found first, use the QList methods to retrieve all occurrences.
|
signal |
This signal is sent before the model data is changed and views are informed.
|
signal |
This signal is sent before the model data is changed and views are informed. Note: You need to explicitly enable sending of this signal. It is not sent in clearShowfotoItemInfos().
|
signal |
This signal is sent after the model data is changed and views are informed.
|
signal |
This signal is sent after the model data is changed and views are informed. Note: You need to explicitly enable sending of this signal. It is not sent in clearShowfotoItemInfos().
|
signal |
This is guaranteed only for the scope of emitting this signal.
|
protected |
The signal will be emitted inline if the model is ready right now.
void ShowFoto::ShowfotoItemModel::setKeepsFileUrlCache | ( | bool | keepCache | ) |
Default is false.
void ShowFoto::ShowfotoItemModel::setSendRemovalSignals | ( | bool | send | ) |
Enable sending of itemInfosAboutToBeRemoved and itemsInfosRemoved signals. Default: false
ShowfotoItemInfo ShowFoto::ShowfotoItemModel::showfotoItemInfo | ( | const QModelIndex & | index | ) | const |
For ShowfotoItemInfo and ShowfotoItemInfoId If the index is not valid they will return a null ShowfotoItemInfo, and 0 respectively, ShowfotoItemInfoRef must not be called with an invalid index as it will crash.
ShowfotoItemInfo ShowFoto::ShowfotoItemModel::showfotoItemInfo | ( | int | row | ) | const |
Note that ShowfotoItemInfoRef must not be called with an invalid index as it will crash.
|
inlineprotectedvirtual |
Reimplemented in ShowFoto::ShowfotoThumbnailModel.
|
protected |
You shall only call this method from a slot connected to readyForIncrementalRefresh(). To initiate an incremental refresh, call requestIncrementalRefresh().