| digiKam Developer Documentation Professional Photo Management with the Power of Open Source

Loading...
Searching...
No Matches
Public Types | Public Slots | Signals | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
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)
ShowfotoFilterModel * | showfotoFilterModel () 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< ShowfotoItemInfo > | showfotoItemInfos (const QList< QModelIndex > &indexes) const
QList< ShowfotoItemInfo > | showfotoItemInfosSorted () const
| Returns a list of all showfoto infos, sorted according to this model.
ShowfotoSortFilterModel * | sourceFilterModel () const
ShowfotoItemModel * | sourceShowfotoModel () 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
ShowfotoSortFilterModel * | m_chainedModel = nullptr

## Member Enumeration Documentation

## ◆ ShowfotoFilterModelRoles

enum ShowFoto::ShowfotoFilterModel::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
| protected virtual

The string need not be for user display.

## ◆ compareCategories()

int ShowFoto::ShowfotoFilterModel::compareCategories | ( | const QModelIndex & | left,
|  | const QModelIndex & | right
| ) |  | const
| override protected virtual

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 cannot 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
| protected virtual

Do not take categories into account here.

## ◆ setDirectSourceShowfotoModel()

void ShowFoto::ShowfotoFilterModel::setDirectSourceShowfotoModel | ( | ShowfotoItemModel *const | sourceModel | ) |
| override protected virtual

Reimplemented from ShowFoto::ShowfotoSortFilterModel.

## ◆ showfotoFilterModel()

ShowfotoFilterModel * ShowFoto::ShowfotoFilterModel::showfotoFilterModel | ( |  | ) | const
| override virtual

Reimplemented from ShowFoto::ShowfotoSortFilterModel.

## ◆ subSortLessThan()

bool ShowFoto::ShowfotoFilterModel::subSortLessThan | ( | const QModelIndex & | left,
|  | const QModelIndex & | right
| ) |  | const
| override protected virtual

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.