21#include <QAbstractItemModel>
36class AlbumModelDragDropHandler;
66 AlbumTitleRole = Qt::UserRole,
68 AlbumTypeRole = Qt::UserRole + 1,
70 AlbumPointerRole = Qt::UserRole + 2,
72 AlbumIdRole = Qt::UserRole + 3,
74 AlbumGlobalIdRole = Qt::UserRole + 4,
76 AlbumSortRole = Qt::UserRole + 5
87 Album*
const rootAlbum,
88 RootAlbumBehavior rootBehavior = IncludeRootAlbum,
89 QObject*
const parent =
nullptr);
95 void setDropIndex(
const QModelIndex& index);
110 Album* albumForIndex(
const QModelIndex& index)
const;
116 QModelIndex indexForAlbum(
Album* album)
const;
122 static Album* retrieveAlbum(
const QModelIndex& index);
124 Album* rootAlbum()
const;
129 QModelIndex rootAlbumIndex()
const;
134 RootAlbumBehavior rootAlbumBehavior()
const;
144 bool isFaceTagModel()
const;
146 QVariant data(
const QModelIndex& index,
int role = Qt::DisplayRole)
const override;
147 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
148 int rowCount(
const QModelIndex& parent = QModelIndex())
const override;
149 int columnCount(
const QModelIndex& parent = QModelIndex())
const override;
150 Qt::ItemFlags flags(
const QModelIndex& index)
const override;
151 bool hasChildren(
const QModelIndex& parent = QModelIndex())
const override;
152 QModelIndex index(
int row,
int column,
const QModelIndex& parent = QModelIndex())
const override;
153 QModelIndex parent(
const QModelIndex& index)
const override;
155 Qt::DropActions supportedDropActions()
const override;
156 QStringList mimeTypes()
const override;
157 bool dropMimeData(
const QMimeData* data, Qt::DropAction action,
int row,
int column,
const QModelIndex& parent)
override;
158 QMimeData* mimeData(
const QModelIndexList& indexes)
const override;
175 void setEnableDrag(
bool enable);
176 void setEnableDrop(
bool enable);
177 void setFaceTagModel(
bool enable);
184 virtual QVariant albumData(
Album* a,
int role)
const;
187 virtual QVariant decorationRoleData(
Album* a)
const;
190 virtual QVariant fontRoleData(
Album* a)
const;
193 virtual QVariant sortRoleData(
Album* a)
const;
196 virtual QString columnHeader()
const;
199 virtual Qt::ItemFlags itemFlags(
Album* album)
const;
205 virtual bool filterAlbum(
Album* album)
const;
215 void slotAlbumAboutToBeAdded(
Album* album,
Album* parent,
Album* prev);
216 void slotAlbumAdded(
Album*);
217 void slotAlbumAboutToBeDeleted(
Album* album);
218 void slotAlbumHasBeenDeleted(
Album* album);
219 void slotAlbumsCleared();
220 void slotAlbumIconChanged(
Album* album);
221 void slotAlbumRenamed(
Album* album);
226 Private*
const d =
nullptr;
239 Album*
const rootAlbum,
241 QObject*
const parent =
nullptr);
245 QString columnHeader()
const override;
246 void setColumnHeader(
const QString& header);
249 void setupThumbnailLoading();
250 void emitDataChangedForChildren(
Album* album);
254 void slotGotThumbnailFromIcon(
Album* album,
const QPixmap& thumbnail);
255 void slotThumbnailLost(
Album* album);
256 void slotReloadThumbnails();
274 Album*
const rootAlbum,
276 QObject*
const parent =
nullptr);
279 bool showCount()
const;
286 virtual int albumCount(
Album* album)
const;
302 void setShowCount(
bool show);
309 void setCountHash(
const QHash<int, int>& idCountHash);
316 void excludeChildrenCount(
const QModelIndex& index);
322 void includeChildrenCount(
const QModelIndex& index);
327 void setCount(
Album* album,
int count);
333 virtual QString albumName(
Album* a)
const;
336 QVariant albumData(
Album* a,
int role)
const override;
337 void albumCleared(
Album* album)
override;
338 void allAlbumsCleared()
override;
342 void slotAlbumMoved(
Album* album);
346 void updateCount(
Album*
const album);
351 Private*
const d =
nullptr;
368 Album*
const rootAlbum,
370 QObject*
const parent =
nullptr);
374 void setCheckable(
bool isCheckable);
375 bool isCheckable()
const;
381 void setRootCheckable(
bool rootIsCheckable);
382 bool rootIsCheckable()
const;
390 void setTristate(
bool isTristate);
391 bool isTristate()
const;
399 void setAddExcludeTristate(
bool b);
400 bool isAddExcludeTristate()
const;
403 bool isChecked(
Album* album)
const;
406 Qt::CheckState checkState(
Album* album)
const;
409 QList<Album*> checkedAlbums()
const;
412 QList<Album*> partiallyCheckedAlbums()
const;
418 void setRecursive(
bool recursive);
423 void setChecked(
Album* album,
bool isChecked);
426 void setCheckState(
Album* album, Qt::CheckState state);
429 void toggleChecked(
Album* album);
432 void resetAllCheckedAlbums();
435 void resetCheckedAlbums(
const QModelIndex& parent = QModelIndex());
438 void resetCheckedParentAlbums(
const QModelIndex& child);
441 void checkAllAlbums(
const QModelIndex& parent = QModelIndex());
444 void checkAllParentAlbums(
const QModelIndex& child);
447 void invertCheckedAlbums(
const QModelIndex& parent = QModelIndex());
450 void setCheckStateForChildren(
Album* album, Qt::CheckState state);
453 void setCheckStateForParents(
Album* album, Qt::CheckState state);
468 void prepareAddExcludeDecoration(
Album* a, QPixmap& icon)
const;
470 QVariant albumData(
Album* a,
int role)
const override;
471 Qt::ItemFlags flags(
const QModelIndex& index)
const override;
476 bool setData(
const QModelIndex& index,
const QVariant&
value,
int role = Qt::EditRole)
override;
477 bool setData(
const QModelIndex& index,
const QVariant&
value,
int role,
bool recursive);
479 void albumCleared(
Album* album)
override;
480 void allAlbumsCleared()
override;
484 void setDataForParents(
const QModelIndex& child,
const QVariant&
value,
int role = Qt::EditRole);
485 void setDataForChildren(
const QModelIndex& parent,
const QVariant&
value,
int role = Qt::EditRole);
490 Private*
const d =
nullptr;
Definition abstractalbummodel.h:39
virtual void albumCleared(Album *)
Notification when an entry is removed.
Definition abstractalbummodel.h:208
RootAlbumBehavior
Definition abstractalbummodel.h:50
@ IncludeRootAlbum
Definition abstractalbummodel.h:55
void rootAlbumAvailable()
AlbumDataRole
Definition abstractalbummodel.h:64
virtual void allAlbumsCleared()
Notification when all entries are removed.
Definition abstractalbummodel.h:211
Definition abstractalbummodel.h:357
void checkStateChanged(Album *album, Qt::CheckState checkState)
Definition abstractalbummodel.h:266
void signalUpdateAlbumCount(Album *album)
virtual Album * albumForId(int id) const =0
need to implement in subclass
Definition abstractalbummodel.h:232
QString m_columnHeader
Definition abstractalbummodel.h:260
Definition albummodeldragdrophandler.h:29
Abstract base class for all album types.
Definition album.h:57
Type
Definition album.h:61
qulonglong value
Definition itemviewutilities.cpp:585
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34