digiKam
Digikam::AbstractAlbumModel Class Reference
+ Inheritance diagram for Digikam::AbstractAlbumModel:

Public Types

enum  AlbumDataRole {
  AlbumTitleRole = Qt::UserRole , AlbumTypeRole = Qt::UserRole + 1 , AlbumPointerRole = Qt::UserRole + 2 , AlbumIdRole = Qt::UserRole + 3 ,
  AlbumGlobalIdRole = Qt::UserRole + 4 , AlbumSortRole = Qt::UserRole + 5
}
 
enum  RootAlbumBehavior { IncludeRootAlbum , IgnoreRootAlbum }
 

Signals

void rootAlbumAvailable ()
 

Public Member Functions

 AbstractAlbumModel (Album::Type albumType, Album *const rootAlbum, RootAlbumBehavior rootBehavior=IncludeRootAlbum, QObject *const parent=nullptr)
 
AlbumalbumForIndex (const QModelIndex &index) const
 
Album::Type albumType () const
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
AlbumModelDragDropHandlerdragDropHandler () const
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
bool hasChildren (const QModelIndex &parent=QModelIndex()) const override
 
QVariant headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
QModelIndex indexForAlbum (Album *album) const
 
bool isFaceTagModel () const
 
QMimeData * mimeData (const QModelIndexList &indexes) const override
 
QStringList mimeTypes () const override
 
QModelIndex parent (const QModelIndex &index) const override
 
AlbumrootAlbum () const
 
RootAlbumBehavior rootAlbumBehavior () const
 
QModelIndex rootAlbumIndex () const
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
void setDragDropHandler (AlbumModelDragDropHandler *handler)
 
Qt::DropActions supportedDropActions () const override
 
 ~AbstractAlbumModel () override
 

Static Public Member Functions

static AlbumretrieveAlbum (const QModelIndex &index)
 

Protected Slots

void slotAlbumAboutToBeAdded (Album *album, Album *parent, Album *prev)
 
void slotAlbumAboutToBeDeleted (Album *album)
 
void slotAlbumAdded (Album *)
 
void slotAlbumHasBeenDeleted (quintptr)
 
void slotAlbumIconChanged (Album *album)
 
void slotAlbumRenamed (Album *album)
 
void slotAlbumsCleared ()
 

Protected Member Functions

virtual void albumCleared (Album *)
 Notification when an entry is removed. More...
 
virtual QVariant albumData (Album *a, int role) const
 For subclassing convenience: A part of the implementation of data() More...
 
virtual void allAlbumsCleared ()
 Notification when all entries are removed. More...
 
virtual QString columnHeader () const
 For subclassing convenience: A part of the implementation of headerData() More...
 
virtual QVariant decorationRoleData (Album *a) const
 For subclassing convenience: A part of the implementation of data() More...
 
virtual bool filterAlbum (Album *album) const
 
virtual QVariant fontRoleData (Album *a) const
 For subclassing convenience: A part of the implementation of data() More...
 
virtual Qt::ItemFlags itemFlags (Album *album) const
 For subclassing convenience: A part of the implementation of itemFlags() More...
 
void setEnableDrag (bool enable)
 
void setEnableDrop (bool enable)
 
void setFaceTagModel (bool enable)
 
virtual QVariant sortRoleData (Album *a) const
 For subclassing convenience: A part of the implementation of data() More...
 

Member Enumeration Documentation

◆ AlbumDataRole

Enumerator
AlbumTitleRole 

Returns the album title. Principally the same as display role, but without any additions.

AlbumTypeRole 

Returns the Album::Type of the associated album.

AlbumPointerRole 

Returns a pointer to the associated Album object.

AlbumIdRole 

Returns the id of the associated Album object.

AlbumGlobalIdRole 

Returns the global id (unique across all album types)

AlbumSortRole 

Returns the data to sort on.

◆ RootAlbumBehavior

AbstractAlbumModel is the abstract base class for all models that present Album objects as managed by AlbumManager. You will want to create an instance of the base classes.

Enumerator
IncludeRootAlbum 

The root album will be included as a single parent item with all top-level album as children

IgnoreRootAlbum 

The root album will not be included, but all top-level album are represented as top-level items in this view

Constructor & Destructor Documentation

◆ AbstractAlbumModel()

◆ ~AbstractAlbumModel()

Digikam::AbstractAlbumModel::~AbstractAlbumModel ( )
override

Member Function Documentation

◆ albumCleared()

virtual void Digikam::AbstractAlbumModel::albumCleared ( Album )
inlineprotectedvirtual

Notification when an entry is removed.

Reimplemented in Digikam::AbstractCheckableAlbumModel, and Digikam::AbstractCountingAlbumModel.

Referenced by slotAlbumAboutToBeDeleted().

◆ albumData()

QVariant Digikam::AbstractAlbumModel::albumData ( Album a,
int  role 
) const
protectedvirtual

◆ albumForIndex()

◆ albumType()

Album::Type Digikam::AbstractAlbumModel::albumType ( ) const

Returns the Album::Type of the contained albums

Referenced by AbstractAlbumModel().

◆ allAlbumsCleared()

virtual void Digikam::AbstractAlbumModel::allAlbumsCleared ( )
inlineprotectedvirtual

Notification when all entries are removed.

Reimplemented in Digikam::AbstractCheckableAlbumModel, and Digikam::AbstractCountingAlbumModel.

Referenced by slotAlbumsCleared().

◆ columnCount()

int Digikam::AbstractAlbumModel::columnCount ( const QModelIndex &  parent = QModelIndex()) const
override

◆ columnHeader()

QString Digikam::AbstractAlbumModel::columnHeader ( ) const
protectedvirtual

For subclassing convenience: A part of the implementation of headerData()

Reimplemented in Digikam::AbstractSpecificAlbumModel.

Referenced by headerData().

◆ data()

QVariant Digikam::AbstractAlbumModel::data ( const QModelIndex &  index,
int  role = Qt::DisplayRole 
) const
override

References albumData(), and index().

◆ decorationRoleData()

QVariant Digikam::AbstractAlbumModel::decorationRoleData ( Album a) const
protectedvirtual

For subclassing convenience: A part of the implementation of data()

Reimplemented in Digikam::DateAlbumModel, Digikam::TagModel, and Digikam::AlbumModel.

Referenced by albumData().

◆ dragDropHandler()

◆ dropMimeData()

bool Digikam::AbstractAlbumModel::dropMimeData ( const QMimeData *  data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex &  parent 
)
override

◆ filterAlbum()

bool Digikam::AbstractAlbumModel::filterAlbum ( Album album) const
protectedvirtual

Returns true for those and only those albums that shall be contained in this model. They must have a common root album, which is set in the constructor.

References Digikam::Album::type().

Referenced by Digikam::AbstractSpecificAlbumModel::emitDataChangedForChildren(), indexForAlbum(), slotAlbumAboutToBeAdded(), slotAlbumAboutToBeDeleted(), slotAlbumIconChanged(), slotAlbumRenamed(), and Digikam::AbstractSpecificAlbumModel::slotGotThumbnailFromIcon().

◆ flags()

Qt::ItemFlags Digikam::AbstractAlbumModel::flags ( const QModelIndex &  index) const
override

◆ fontRoleData()

QVariant Digikam::AbstractAlbumModel::fontRoleData ( Album a) const
protectedvirtual

For subclassing convenience: A part of the implementation of data()

Reimplemented in Digikam::TagModel.

Referenced by albumData().

◆ hasChildren()

bool Digikam::AbstractAlbumModel::hasChildren ( const QModelIndex &  parent = QModelIndex()) const
override

◆ headerData()

QVariant Digikam::AbstractAlbumModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role = Qt::DisplayRole 
) const
override

References columnHeader().

◆ index()

◆ indexForAlbum()

◆ isFaceTagModel()

bool Digikam::AbstractAlbumModel::isFaceTagModel ( ) const

Returns true if the album model a face tag model

Referenced by Digikam::TagModel::decorationRoleData(), and Digikam::AlbumFilterModel::lessThan().

◆ itemFlags()

Qt::ItemFlags Digikam::AbstractAlbumModel::itemFlags ( Album album) const
protectedvirtual

For subclassing convenience: A part of the implementation of itemFlags()

Referenced by flags().

◆ mimeData()

QMimeData * Digikam::AbstractAlbumModel::mimeData ( const QModelIndexList &  indexes) const
override

References albumForIndex(), and index().

◆ mimeTypes()

QStringList Digikam::AbstractAlbumModel::mimeTypes ( ) const
override

◆ parent()

◆ retrieveAlbum()

Album * Digikam::AbstractAlbumModel::retrieveAlbum ( const QModelIndex &  index)
static

Returns the album represented by the index. In contrast to albumForIndex(), the index can be from any proxy model, as long as an AbstractAlbumModel is at the end.

References AlbumPointerRole, and index().

Referenced by Digikam::AlbumFilterModel::albumForIndex(), and Digikam::AlbumFilterModel::filterAcceptsRow().

◆ rootAlbum()

◆ rootAlbumAvailable

void Digikam::AbstractAlbumModel::rootAlbumAvailable ( )
signal

This is initialized once after creation, if the root album becomes available, if it was not already available at time of construction. This is emitted regardless of root album policy.

Referenced by slotAlbumAdded().

◆ rootAlbumBehavior()

AbstractAlbumModel::RootAlbumBehavior Digikam::AbstractAlbumModel::rootAlbumBehavior ( ) const

Returns the root album behavior set for this model

Referenced by Digikam::TagTreeView::setAlbumModel().

◆ rootAlbumIndex()

QModelIndex Digikam::AbstractAlbumModel::rootAlbumIndex ( ) const

Return the index corresponding to the root album. If the policy is IgnoreRootAlbum, this is an invalid index.

References indexForAlbum().

Referenced by Digikam::AbstractCheckableAlbumModel::flags(), Digikam::AbstractCheckableAlbumModel::resetCheckedAlbums(), and Digikam::AlbumFilterModel::rootAlbumIndex().

◆ rowCount()

int Digikam::AbstractAlbumModel::rowCount ( const QModelIndex &  parent = QModelIndex()) const
override

◆ setDragDropHandler()

void Digikam::AbstractAlbumModel::setDragDropHandler ( AlbumModelDragDropHandler handler)

◆ setEnableDrag()

void Digikam::AbstractAlbumModel::setEnableDrag ( bool  enable)
protected

Switch on drag and drop globally for all items. Default is true. For per-item cases reimplement itemFlags().

◆ setEnableDrop()

void Digikam::AbstractAlbumModel::setEnableDrop ( bool  enable)
protected

◆ setFaceTagModel()

void Digikam::AbstractAlbumModel::setFaceTagModel ( bool  enable)
protected

◆ slotAlbumAboutToBeAdded

void Digikam::AbstractAlbumModel::slotAlbumAboutToBeAdded ( Album album,
Album parent,
Album prev 
)
protectedslot

◆ slotAlbumAboutToBeDeleted

void Digikam::AbstractAlbumModel::slotAlbumAboutToBeDeleted ( Album album)
protectedslot

◆ slotAlbumAdded

void Digikam::AbstractAlbumModel::slotAlbumAdded ( Album album)
protectedslot

References rootAlbumAvailable().

Referenced by AbstractAlbumModel().

◆ slotAlbumHasBeenDeleted

void Digikam::AbstractAlbumModel::slotAlbumHasBeenDeleted ( quintptr  p)
protectedslot

Referenced by AbstractAlbumModel().

◆ slotAlbumIconChanged

void Digikam::AbstractAlbumModel::slotAlbumIconChanged ( Album album)
protectedslot

References filterAlbum(), index(), and indexForAlbum().

Referenced by AbstractAlbumModel().

◆ slotAlbumRenamed

void Digikam::AbstractAlbumModel::slotAlbumRenamed ( Album album)
protectedslot

References filterAlbum(), index(), and indexForAlbum().

Referenced by AbstractAlbumModel().

◆ slotAlbumsCleared

void Digikam::AbstractAlbumModel::slotAlbumsCleared ( )
protectedslot

References allAlbumsCleared().

Referenced by AbstractAlbumModel().

◆ sortRoleData()

QVariant Digikam::AbstractAlbumModel::sortRoleData ( Album a) const
protectedvirtual

For subclassing convenience: A part of the implementation of data()

Reimplemented in Digikam::DateAlbumModel.

References Digikam::Album::title().

Referenced by albumData().

◆ supportedDropActions()

Qt::DropActions Digikam::AbstractAlbumModel::supportedDropActions ( ) const
override

The documentation for this class was generated from the following files: