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

Public Types

enum  ShowfotoFilterModelRoles { CategorizationModeRole = ShowfotoItemModel::FilterModelRoles + 1 , SortOrderRole = ShowfotoItemModel::FilterModelRoles + 2 , CategoryFormatRole = ShowfotoItemModel::FilterModelRoles + 3 , ShowfotoFilterModelPointerRole = ShowfotoItemModel::FilterModelRoles + 50 }
 
- Public Types inherited from Digikam::DCategorizedSortFilterProxyModel
enum  AdditionalRoles { CategoryDisplayRole = 0x17CE990A , CategorySortRole = 0x27857E60 }
 

Public Slots

void setCategorizationMode (ShowfotoItemSortSettings::CategorizationMode mode)
 
void setSortOrder (ShowfotoItemSortSettings::SortOrder order)
 
void setSortRole (ShowfotoItemSortSettings::SortRole role)
 

Signals

void showfotoItemInfosAboutToBeRemoved (const QList< ShowfotoItemInfo > &infos)
 
void showfotoItemInfosAdded (const QList< ShowfotoItemInfo > &infos)
 These signals need to be explicitly enabled with setSendItemInfoSignals().
 

Public Member Functions

 ShowfotoFilterModel (QObject *const parent=nullptr)
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
void setSendShowfotoItemInfoSignals (bool sendSignals)
 Enables sending ShowfotoItemInfosAdded and ShowfotoItemInfosAboutToBeRemoved.
 
void setShowfotoItemSortSettings (const ShowfotoItemSortSettings &sorter)
 
ShowfotoFilterModelshowfotoFilterModel () const override
 Returns this, any chained ShowfotoFilterModel, or 0.
 
ShowfotoItemSortSettings showfotoItemSortSettings () const
 
- Public Member Functions inherited from ShowFoto::ShowfotoSortFilterModel
 ShowfotoSortFilterModel (QObject *const parent=nullptr)
 
QModelIndex indexForShowfotoItemId (qlonglong id) const
 
QModelIndex indexForShowfotoItemInfo (const ShowfotoItemInfo &info) const
 
QModelIndex indexForUrl (const QUrl &fileUrl) const
 
QModelIndex mapFromDirectSourceToSourceShowfotoModel (const QModelIndex &sourceModelIndex) const
 
QModelIndex mapFromSourceShowfotoModel (const QModelIndex &showfotoModelIndex) const
 
QList< QModelIndex > mapListFromSource (const QList< QModelIndex > &sourceIndexes) const
 
QList< QModelIndex > mapListToSource (const QList< QModelIndex > &indexes) const
 
QModelIndex mapToSourceShowfotoModel (const QModelIndex &proxyIndex) const
 Convenience methods mapped to ShowfotoItemModel.
 
void setSourceFilterModel (ShowfotoSortFilterModel *const sourceModel)
 
void setSourceShowfotoModel (ShowfotoItemModel *const sourceModel)
 
qlonglong showfotoItemId (const QModelIndex &index) const
 
QList< qlonglong > showfotoItemIds (const QList< QModelIndex > &indexes) const
 
ShowfotoItemInfo showfotoItemInfo (const QModelIndex &index) const
 
QList< ShowfotoItemInfoshowfotoItemInfos (const QList< QModelIndex > &indexes) const
 
QList< ShowfotoItemInfoshowfotoItemInfosSorted () const
 Returns a list of all showfoto infos, sorted according to this model.
 
ShowfotoSortFilterModelsourceFilterModel () const
 
ShowfotoItemModelsourceShowfotoModel () const
 
- Public Member Functions inherited from Digikam::DCategorizedSortFilterProxyModel
 DCategorizedSortFilterProxyModel (QObject *const parent=nullptr)
 
bool isCategorizedModel () const
 
void setCategorizedModel (bool categorizedModel)
 Enables or disables the categorization feature.
 
void setSortCategoriesByNaturalComparison (bool sortCategoriesByNaturalComparison)
 Set if the sorting using CategorySortRole will use a natural comparison in the case that strings were returned.
 
void sort (int column, Qt::SortOrder order=Qt::AscendingOrder) override
 Overridden from QSortFilterProxyModel.
 
bool sortCategoriesByNaturalComparison () const
 
int sortColumn () const
 
Qt::SortOrder sortOrder () const
 

Protected Slots

void slotRowsAboutToBeRemoved (const QModelIndex &parent, int start, int end)
 
void slotRowsInserted (const QModelIndex &parent, int start, int end)
 

Protected Member Functions

virtual QString categoryIdentifier (const ShowfotoItemInfo &info) const
 Returns a unique identifier for the category if info.
 
int compareCategories (const QModelIndex &left, const QModelIndex &right) const override
 This method compares the category of the left index with the category of the right index.
 
virtual int compareInfosCategories (const ShowfotoItemInfo &left, const ShowfotoItemInfo &right) const
 Reimplement to customize category sorting, Return negative if category of left < category right, Return 0 if left and right are in the same category, else return positive.
 
virtual bool infosLessThan (const ShowfotoItemInfo &left, const ShowfotoItemInfo &right) const
 Reimplement to customize sorting.
 
void setDirectSourceShowfotoModel (ShowfotoItemModel *const sourceModel) override
 Reimplement if needed. Called only when model shall be set as (direct) sourceModel.
 
bool subSortLessThan (const QModelIndex &left, const QModelIndex &right) const override
 This method has a similar purpose as lessThan() has on QSortFilterProxyModel.
 
- Protected Member Functions inherited from ShowFoto::ShowfotoSortFilterModel
void setSourceModel (QAbstractItemModel *sourceModel) override
 
- Protected Member Functions inherited from Digikam::DCategorizedSortFilterProxyModel
bool lessThan (const QModelIndex &left, const QModelIndex &right) const override
 Overridden from QSortFilterProxyModel.
 

Protected Attributes

ShowfotoFilterModelPrivate *const d_ptr = nullptr
 
- Protected Attributes inherited from ShowFoto::ShowfotoSortFilterModel
ShowfotoSortFilterModelm_chainedModel = nullptr
 

Member Enumeration Documentation

◆ ShowfotoFilterModelRoles

Enumerator
CategorizationModeRole 

Returns the current categorization mode.

SortOrderRole 

Returns the current sort order.

CategoryFormatRole 

Returns the format of the index which is used for category.

ShowfotoFilterModelPointerRole 

Returns true if the given showfoto item is a group leader, and the group is opened.

TODO: GroupIsOpenRole = ShowfotoItemModel::FilterModelRoles + 4

Member Function Documentation

◆ categoryIdentifier()

QString ShowFoto::ShowfotoFilterModel::categoryIdentifier ( const ShowfotoItemInfo info) const
protectedvirtual

The string need not be for user display.

◆ compareCategories()

int ShowFoto::ShowfotoFilterModel::compareCategories ( const QModelIndex &  left,
const QModelIndex &  right 
) const
overrideprotectedvirtual

Internally and if not reimplemented, this method will ask for left and right models for role CategorySortRole. In order to correctly sort categories, the data() method of the model should return a qlonglong (or numeric) value, or a QString object. QString objects will be sorted with QString::localeAwareCompare if sortCategoriesByNaturalComparison() is true.

Note
Please have present that: QString(QChar(QChar::ObjectReplacementCharacter)) > QString(QChar(QChar::ReplacementCharacter)) > [ all possible strings ] > QString();

This means that QString() will be sorted the first one, while QString(QChar(QChar::ObjectReplacementCharacter)) and QString(QChar(QChar::ReplacementCharacter)) will be sorted in last position.

Warning
Please note that data() method of the model should return always information of the same type. If you return a QString for an index, you should return always QStrings for all indexes for role CategorySortRole in order to correctly sort categories. You can't mix by returning a QString for one index, and a qlonglong for other.
Note
If you need a more complex layout, you will have to reimplement this method.
Returns
A negative value if the category of left should be placed before the category of right. 0 if left and right are on the same category, and a positive value if the category of left should be placed after the category of right.

Reimplemented from Digikam::DCategorizedSortFilterProxyModel.

◆ infosLessThan()

bool ShowFoto::ShowfotoFilterModel::infosLessThan ( const ShowfotoItemInfo left,
const ShowfotoItemInfo right 
) const
protectedvirtual

Do not take categories into account here.

◆ setDirectSourceShowfotoModel()

void ShowFoto::ShowfotoFilterModel::setDirectSourceShowfotoModel ( ShowfotoItemModel *const  sourceModel)
overrideprotectedvirtual

Reimplemented from ShowFoto::ShowfotoSortFilterModel.

◆ showfotoFilterModel()

ShowfotoFilterModel * ShowFoto::ShowfotoFilterModel::showfotoFilterModel ( ) const
overridevirtual

Reimplemented from ShowFoto::ShowfotoSortFilterModel.

◆ subSortLessThan()

bool ShowFoto::ShowfotoFilterModel::subSortLessThan ( const QModelIndex &  left,
const QModelIndex &  right 
) const
overrideprotectedvirtual

It is used for sorting items that are in the same category.

Returns
Returns true if the item left is less than the item right when sorting.

Reimplemented from Digikam::DCategorizedSortFilterProxyModel.