digiKam
Digikam::Album Class Referenceabstract

Abstract base class for all album types. More...

+ Inheritance diagram for Digikam::Album:

Public Types

enum  Type {
  PHYSICAL =0 , TAG , DATE , SEARCH ,
  FACE
}
 

Public Member Functions

QList< int > childAlbumIds (bool recursive=false)
 
AlbumList childAlbums (bool recursive=false)
 
AlbumchildAtRow (int row) const
 
int childCount () const
 
virtual CoreDbUrl databaseUrl () const =0
 
void * extraData (const void *const key) const
 
AlbumfirstChild () const
 
int globalID () const
 
int id () const
 
bool isAncestorOf (Album *const album) const
 
bool isRoot () const
 
bool isTrashAlbum () const
 
bool isUsedByLabelsTree () const
 
AlbumlastChild () const
 
Albumnext () const
 
Albumparent () const
 
Albumprev () const
 
void removeExtraData (const void *const key)
 
int rowFromAlbum () const
 
void setExtraData (const void *const key, void *const value)
 
void setUsedByLabelsTree (bool isUsed)
 
QString title () const
 
Type type () const
 

Static Public Member Functions

static int globalID (Type type, int id)
 Produces the global id. More...
 

Protected Member Functions

 Album (Album::Type type, int id, bool root)
 
void clear ()
 
void insertChild (Album *const child)
 
void removeChild (Album *const child)
 
void setParent (Album *const parent)
 
void setTitle (const QString &title)
 
virtual ~Album ()
 

Friends

class AlbumManager
 

Detailed Description

Abstract base class for all album types.

A class which provides an abstraction for a type Album. This class is meant to be derived and every time a new Album Type is defined add a enum corresponding to that to Album::Type

This class provides a means of building a tree representation for Albums

See also
Album::setParent().

Member Enumeration Documentation

◆ Type

Enumerator
PHYSICAL 

A physical album type.

See also
PAlbum
TAG 

A tag album type.

See also
TAlbum
DATE 

A date album type.

See also
DAlbum
SEARCH 

A search album type.

See also
SAlbum
FACE 

A faces album type.

See also
FAlbum

Constructor & Destructor Documentation

◆ Album()

Digikam::Album::Album ( Album::Type  type,
int  id,
bool  root 
)
protected

Constructor

◆ ~Album()

Digikam::Album::~Album ( )
protectedvirtual

Destructor

this will also recursively delete all child Albums

References clear(), and removeChild().

Member Function Documentation

◆ childAlbumIds()

QList< int > Digikam::Album::childAlbumIds ( bool  recursive = false)
Returns
a list of all child Albums

References childAlbums().

Referenced by Digikam::AlbumManager::subTags().

◆ childAlbums()

AlbumList Digikam::Album::childAlbums ( bool  recursive = false)
Returns
a list of all child Albums

Referenced by childAlbumIds().

◆ childAtRow()

Album * Digikam::Album::childAtRow ( int  row) const
Returns
the child of this album at row

Referenced by Digikam::AbstractAlbumModel::index().

◆ childCount()

int Digikam::Album::childCount ( ) const
Returns
the childCount of the album

Referenced by Digikam::AbstractAlbumModel::rowCount().

◆ clear()

void Digikam::Album::clear ( )
protected

Delete all child albums and also remove any associated extra data

Referenced by ~Album().

◆ databaseUrl()

virtual CoreDbUrl Digikam::Album::databaseUrl ( ) const
pure virtual
Returns
the kde url of the album

Implemented in Digikam::SAlbum, Digikam::DAlbum, Digikam::TAlbum, and Digikam::PAlbum.

References Digikam::operator==().

Referenced by Digikam::ItemInfoJob::allItemsFromAlbum().

◆ extraData()

void * Digikam::Album::extraData ( const void *const  key) const

Retrieve the associated extra data associated with key

Parameters
keythe key of the extra data
See also
setExtraData
extraData

Referenced by Digikam::FindDuplicatesView::populateTreeView().

◆ firstChild()

◆ globalID() [1/2]

int Digikam::Album::globalID ( ) const

◆ globalID() [2/2]

int Digikam::Album::globalID ( Type  type,
int  id 
)
static

Produces the global id.

Parameters
typeThe type of the album
idthe (type-specific) id of the album
Returns
the global id

References DATE, FACE, id(), PHYSICAL, SEARCH, TAG, and type().

◆ id()

int Digikam::Album::id ( ) const

Each album has a ID uniquely identifying it in the set of Albums of a Type

Note
The ID for a root Album is always 0
Returns
the ID of the album
See also
globalID()

Referenced by Digikam::TagFolderView::addCustomContextMenuActions(), Digikam::ContextMenuHelper::addGotoMenu(), Digikam::AbstractCountingAlbumModel::albumCleared(), Digikam::AbstractCountingAlbumModel::albumCount(), Digikam::AbstractAlbumModel::albumData(), Digikam::AbstractCountingAlbumModel::albumData(), Digikam::AlbumModel::albumData(), Digikam::TagModel::albumData(), Digikam::AlbumManager::albumTitles(), Digikam::SetupCamera::applySettings(), Digikam::ItemAlbumFilterModel::compareInfosCategories(), Digikam::DigikamItemView::confirmFaces(), Digikam::TagDragDropHandler::createMimeData(), Digikam::TagEditDlg::createTAlbum(), Digikam::AlbumManager::createTAlbum(), Digikam::AlbumManager::deleteSAlbum(), Digikam::AlbumManager::deleteTAlbum(), Digikam::AbstractAlbumTreeView::doSaveState(), Digikam::AbstractCheckableAlbumTreeView::doSaveState(), Digikam::ItemDragDropHandler::dropEvent(), Digikam::TagDragDropHandler::dropEvent(), Digikam::DuplicatesFinder::DuplicatesFinder(), Digikam::SearchTabHeader::editSearch(), Digikam::AbstractCountingAlbumModel::excludeChildrenCount(), Digikam::TagModel::fontRoleData(), Digikam::AlbumManager::getItemFromAlbum(), globalID(), Digikam::ScanController::hintAtMoveOrCopyOfItem(), Digikam::ScanController::hintAtMoveOrCopyOfItems(), Digikam::AbstractCountingAlbumModel::includeChildrenCount(), Digikam::AlbumFilterModel::lessThan(), Digikam::AlbumManager::mergeTAlbum(), Digikam::AlbumManager::moveTAlbum(), Digikam::SearchFieldAlbum::read(), Digikam::SearchFieldLabels::read(), Digikam::AlbumManager::renamePAlbum(), Digikam::AlbumManager::renameTAlbum(), Digikam::TagList::restoreSettings(), Digikam::AbstractAlbumTreeView::rowsAboutToBeRemoved(), Digikam::AlbumSelectors::selectedAlbumIds(), Digikam::AlbumSelectors::selectedTagIds(), Digikam::TagFolderView::setContexMenuItems(), Digikam::AbstractCountingAlbumModel::setCount(), Digikam::AddTagsLineEdit::setCurrentTag(), Digikam::AddTagsLineEdit::setParentTag(), Digikam::FaceGroup::slotAlbumRenamed(), Digikam::ItemIconView::slotAlbumSelected(), Digikam::TagModificationHelper::slotMultipleFaceTagDel(), Digikam::ItemIconView::slotRefresh(), Digikam::TagModificationHelper::slotTagToFaceTag(), Digikam::AddTagsComboBox::slotViewIndexActivated(), Digikam::AlbumManager::tagNames(), Digikam::AlbumManager::tagPaths(), Digikam::AlbumManager::updatePAlbumIcon(), Digikam::AlbumManager::updateSAlbum(), Digikam::AlbumManager::updateTAlbumIcon(), Digikam::SearchFieldAlbum::write(), and Digikam::SearchFieldLabels::write().

◆ insertChild()

void Digikam::Album::insertChild ( Album *const  child)
protected

Referenced by setParent().

◆ isAncestorOf()

bool Digikam::Album::isAncestorOf ( Album *const  album) const
Returns
true if the album is in the parent hierarchy
Parameters
albumthe album to check whether it belongs in the child hierarchy

References isRoot(), and parent().

Referenced by Digikam::AlbumDragDropHandler::accepts(), Digikam::TagDragDropHandler::accepts(), Digikam::AlbumManager::createTAlbum(), Digikam::AlbumManager::moveTAlbum(), Digikam::ItemAlbumModel::slotCollectionImageChange(), and Digikam::ItemAlbumModel::slotImageTagChange().

◆ isRoot()

bool Digikam::Album::isRoot ( ) const
Returns
true is the album is a Root Album

Referenced by Digikam::AlbumDragDropHandler::accepts(), Digikam::TagDragDropHandler::accepts(), Digikam::ContextMenuHelper::addActionDeleteAlbum(), Digikam::ContextMenuHelper::addActionEditAlbum(), Digikam::ContextMenuHelper::addActionRenameAlbum(), Digikam::ContextMenuHelper::addActionResetAlbumIcon(), Digikam::TagFolderView::addCustomContextMenuActions(), Digikam::AbstractCountingAlbumModel::albumData(), Digikam::AbstractCheckableAlbumModel::albumData(), Digikam::TagModel::albumData(), Digikam::AlbumDragDropHandler::createMimeData(), Digikam::AlbumManager::createPAlbum(), Digikam::TagEditDlg::createTAlbum(), Digikam::ItemDragDropHandler::dropEvent(), Digikam::AlbumThumbnailLoader::getStandardAlbumIcon(), Digikam::AlbumThumbnailLoader::getStandardTagIcon(), isAncestorOf(), Digikam::AlbumFilterModel::matchResult(), Digikam::PAlbumPath::PAlbumPath(), Digikam::AlbumSelectDialog::selectAlbum(), Digikam::TagMngrTreeView::setContexMenuItems(), Digikam::AbstractAlbumModel::slotAlbumAboutToBeAdded(), Digikam::AlbumWatch::slotAlbumAboutToBeDeleted(), Digikam::AbstractAlbumModel::slotAlbumAboutToBeDeleted(), Digikam::AlbumWatch::slotAlbumAdded(), Digikam::AlbumModificationHelper::slotAlbumDelete(), Digikam::AlbumModificationHelper::slotAlbumEdit(), Digikam::AlbumModificationHelper::slotAlbumNew(), Digikam::ItemIconView::slotAlbumOpenInFileManager(), Digikam::ItemIconView::slotAlbumSelected(), Digikam::TagModificationHelper::slotMultipleFaceTagDel(), Digikam::TagModificationHelper::slotMultipleTagDel(), Digikam::TagPropWidget::slotSelectionChanged(), Digikam::TagModificationHelper::slotTagDelete(), Digikam::TAlbum::tagIDs(), and Digikam::TAlbum::tagPath().

◆ isTrashAlbum()

◆ isUsedByLabelsTree()

bool Digikam::Album::isUsedByLabelsTree ( ) const
Returns
true if the Album was created by Labels Tree

◆ lastChild()

Album * Digikam::Album::lastChild ( ) const
Returns
the last child of this album or 0 if no children

Referenced by Digikam::AlbumManager::createSAlbum(), and Digikam::AlbumManager::moveTAlbum().

◆ next()

◆ parent()

◆ prev()

Album * Digikam::Album::prev ( ) const
Returns
the previous sibling of this album of this album or 0 if no previous sibling
See also
AlbumIterator

◆ removeChild()

void Digikam::Album::removeChild ( Album *const  child)
protected

◆ removeExtraData()

void Digikam::Album::removeExtraData ( const void *const  key)

Remove the associated extra data associated with key

Parameters
keythe key of the extra data
See also
setExtraData
extraData

◆ rowFromAlbum()

◆ setExtraData()

void Digikam::Album::setExtraData ( const void *const  key,
void *const  value 
)

This allows to associate some "extra" data to a Album. As one Album can be used by several objects (often views) which all need to add some data, you have to use a key to reference your extra data within the Album.

That way a Album can hold and provide access to all those views separately.

for eg,

album->setExtraData( this, searchFolderItem );

and can later access the searchFolderItem by doing

SearchFolderItem *item = static_cast<SearchFolderItem*>(album->extraData(this));

Note: you have to remove and destroy the data you associated yourself when you don't need it anymore!

Parameters
keythe key of the extra data
valuethe value of the extra data
See also
extraData
removeExtraData

References value.

Referenced by Digikam::FindDuplicatesView::populateTreeView().

◆ setParent()

void Digikam::Album::setParent ( Album *const  parent)
protected

◆ setTitle()

◆ setUsedByLabelsTree()

void Digikam::Album::setUsedByLabelsTree ( bool  isUsed)

Sets the property m_usedByLabelsTree to true if the search album was created using the Colors and labels tree view

Parameters
isUsed=> the status of the usage

◆ title()

QString Digikam::Album::title ( ) const
Returns
the title aka name of the album

Referenced by Digikam::AbstractAlbumModel::albumData(), Digikam::SearchModel::albumData(), Digikam::DBInfoIface::albumInfo(), Digikam::AbstractCountingAlbumModel::albumName(), Digikam::AlbumPropsEdit::AlbumPropsEdit(), Digikam::ToolTipFiller::albumTipContents(), Digikam::AlbumManager::albumTitles(), Digikam::ListItem::data(), Digikam::AlbumFilterModel::dataForCurrentSortRole(), Digikam::SAlbum::displayTitle(), Digikam::TagDragDropHandler::dropEvent(), Digikam::ImageWindow::dropEvent(), Digikam::ScanController::hintAtMoveOrCopyOfAlbum(), Digikam::SAlbum::isTemporarySearch(), Digikam::lessThanByTitle(), Digikam::TagsManagerFilterModel::matches(), Digikam::AlbumManager::mergeTAlbum(), Digikam::AlbumManager::moveTAlbum(), Digikam::ItemViewUtilities::openInfos(), Digikam::PAlbum::PAlbum(), Digikam::AlbumManager::renamePAlbum(), Digikam::SAlbum::SAlbum(), Digikam::SearchTabHeader::selectedSearchChanged(), Digikam::AddTagsLineEdit::setCurrentTag(), setTitle(), Digikam::AlbumModificationHelper::slotAlbumEdit(), Digikam::AlbumModificationHelper::slotAlbumRename(), Digikam::TagModificationHelper::slotMultipleFaceTagDel(), Digikam::SearchModificationHelper::slotSearchRename(), Digikam::TagPropWidget::slotSelectionChanged(), Digikam::AddTagsComboBox::slotViewIndexActivated(), Digikam::AbstractAlbumModel::sortRoleData(), Digikam::AlbumManager::tagNames(), Digikam::TAlbum::tagPath(), Digikam::TAlbum::TAlbum(), and Digikam::AlbumManager::updateSAlbum().

◆ type()

Friends And Related Function Documentation

◆ AlbumManager

friend class AlbumManager
friend

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