22#include <QSortFilterProxyModel>
94 QModelIndex mapToSourceAlbumModel(
const QModelIndex& index)
const;
95 QModelIndex mapFromSourceAlbumModel(
const QModelIndex& index)
const;
98 Album* albumForIndex(
const QModelIndex& index)
const;
99 QModelIndex indexForAlbum(
Album* album)
const;
100 QModelIndex rootAlbumIndex()
const;
101 QVariant dataForCurrentSortRole(
Album* album)
const;
113 void setFilterBehavior(FilterBehavior behavior);
120 MatchResult matchResult(
const QModelIndex& index)
const;
128 virtual bool isFiltering()
const;
138 template <
typename T>
162 if (sortOrder == Qt::AscendingOrder)
164 return compareResult;
168 return (- compareResult);
172 template <
typename T>
175 return compareByOrder(compareValue(a, b), sortOrder);
241 virtual bool matches(
Album* album)
const;
249 void setSourceModel(QAbstractItemModel*
const model)
override;
251 bool filterAcceptsRow(
int source_row,
const QModelIndex& source_parent)
const override;
252 bool lessThan(
const QModelIndex& left,
const QModelIndex& right)
const override;
256 void slotAlbumRenamed(
Album* album);
257 void slotAlbumsHaveBeenUpdated(
int type);
273 QPointer<AlbumFilterModel> m_chainedModel =
nullptr;
274 QObject* m_parent =
nullptr;
296 void setFilterChecked(
bool filter);
297 void setFilterPartiallyChecked(
bool filter);
299 bool isFiltering()
const override;
303 bool matches(
Album* album)
const override;
307 bool m_filterChecked =
false;
308 bool m_filterPartiallyChecked =
false;
324 void setSourceSearchModel(
SearchModel*
const source);
331 void listAllSearches();
332 void listNormalSearches();
333 void listTimelineSearches();
334 void listHaarSearches();
335 void listMapSearches();
336 void listDuplicatesSearches();
341 void setListTemporarySearches(
bool list);
343 bool isFiltering()
const override;
350 void setTypeFilter(
int type);
352 bool matches(
Album* album)
const override;
356 int m_searchType = -1;
357 bool m_listTemporary =
false;
373 void setSourceAlbumModel(
TagModel*
const source);
376 void listOnlyTagsWithProperty(
const QString& property);
377 void removeListOnlyProperty(
const QString& property);
378 void doNotListTagsWithProperty(
const QString& property);
379 void removeDoNotListProperty(
const QString& property);
381 bool isFiltering()
const override;
385 void tagPropertiesChanged(
TAlbum*);
389 bool matches(
Album* album)
const override;
407 void setQuickListTags(
const QList<int>& tags);
411 bool matches(
Album* album)
const override;
Definition abstractalbummodel.h:39
Definition abstractalbummodel.h:357
Definition albumfiltermodel.h:35
static int compareValue(const T &a, const T &b)
Definition albumfiltermodel.h:139
FilterBehavior
Definition albumfiltermodel.h:55
@ SimpleFiltering
Definition albumfiltermodel.h:60
@ FullFiltering
Definition albumfiltermodel.h:66
MatchResult
Definition albumfiltermodel.h:41
@ ParentMatch
A parent if the index is matched.
Definition albumfiltermodel.h:47
@ ChildMatch
A child of the index is matched.
Definition albumfiltermodel.h:49
@ DirectMatch
The index itself is matched.
Definition albumfiltermodel.h:45
SearchTextSettings m_settings
Definition albumfiltermodel.h:272
void signalFilterChanged()
void searchTextSettingsChanged(bool wasSearching, bool searched)
static int compareByOrder(const T &a, const T &b, Qt::SortOrder sortOrder)
Definition albumfiltermodel.h:173
static int compareByOrder(int compareResult, Qt::SortOrder sortOrder)
Definition albumfiltermodel.h:160
void searchTextSettingsAboutToChange(bool searched, bool willSearch)
void hasSearchResult(bool hasResult)
Abstract base class for all album types.
Definition album.h:57
Definition albumfiltermodel.h:284
Definition albumfiltermodel.h:317
Definition albummodel.h:89
Definition searchtextbar.h:33
Definition albummodel.h:57
Definition albumfiltermodel.h:366
QSet< QString > m_propertiesWhiteList
Definition albumfiltermodel.h:394
QSet< QString > m_propertiesBlackList
Definition albumfiltermodel.h:393
Type
Definition coredbconstants.h:34
Definition datefolderview.cpp:34