digiKam
Loading...
Searching...
No Matches
albummodel.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2008-03-22
7 * Description : Qt Model for Albums
8 *
9 * SPDX-FileCopyrightText: 2008-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QDateTime>
20
21// Local includes
22
23#include "abstractalbummodel.h"
24#include "digikam_export.h"
25
26namespace Digikam
27{
28
29class DIGIKAM_GUI_EXPORT AlbumModel : public AbstractCheckableAlbumModel
30{
31 Q_OBJECT
32
33public:
34
38 explicit AlbumModel(RootAlbumBehavior rootBehavior = IncludeRootAlbum, QObject* const parent = nullptr);
39 ~AlbumModel() override = default;
40
41 PAlbum* albumForIndex(const QModelIndex& index) const;
42
43private Q_SLOTS:
44
45 void slotUpdateTrashCounters();
46
47protected:
48
49 QVariant albumData(Album* a, int role) const override;
50 QVariant decorationRoleData(Album* a) const override;
51 Album* albumForId(int id) const override;
52};
53
54// ------------------------------------------------------------------
55
56class DIGIKAM_GUI_EXPORT TagModel : public AbstractCheckableAlbumModel
57{
58 Q_OBJECT
59
60public:
61
65 explicit TagModel(RootAlbumBehavior rootBehavior = IncludeRootAlbum, QObject* const parent = nullptr);
66
67 TAlbum* albumForIndex(const QModelIndex& index) const;
68 void setColumnHeader(const QString& header);
69 void activateFaceTagModel();
70
71protected:
72
73 QVariant albumData(Album* a, int role) const override;
74 QVariant decorationRoleData(Album* a) const override;
75 Album* albumForId(int id) const override;
76 QVariant fontRoleData(Album* a) const override;
77 bool setData(const QModelIndex& index,
78 const QVariant& value,
79 int role = Qt::EditRole) override;
80
81private:
82
83 QHash<int, int> m_unconfirmedFaceCount;
84};
85
86// ------------------------------------------------------------------
87
88class DIGIKAM_GUI_EXPORT SearchModel : public AbstractCheckableAlbumModel
89{
90 Q_OBJECT
91
92public:
93
97 explicit SearchModel(QObject* const parent = nullptr);
98
99 SAlbum* albumForIndex(const QModelIndex& index) const;
100
105 void setReplaceNames(const QHash<QString, QString>& replaceNames);
106 void addReplaceName(const QString& technicalName, const QString& userVisibleName);
107
111 void setPixmapForNormalSearches(const QPixmap& pix);
112 void setDefaultPixmap(const QPixmap& pix);
113 void setPixmapForTimelineSearches(const QPixmap& pix);
114 void setPixmapForHaarSearches(const QPixmap& pix);
115 void setPixmapForMapSearches(const QPixmap& pix);
116 void setPixmapForDuplicatesSearches(const QPixmap& pix);
117
118protected:
119
120 QVariant albumData(Album* a, int role) const override;
121 Album* albumForId(int id) const override;
122
123private Q_SLOTS:
124
125 void albumSettingsChanged();
126
127protected:
128
129 QHash<int, QPixmap> m_pixmaps;
130 QHash<QString, QString> m_replaceNames;
131};
132
133// ------------------------------------------------------------------
134
138class DIGIKAM_GUI_EXPORT DateAlbumModel : public AbstractCountingAlbumModel
139{
140 Q_OBJECT
141
142public:
143
149 explicit DateAlbumModel(QObject* const parent = nullptr);
150
151 DAlbum* albumForIndex(const QModelIndex& index) const;
152
162 QModelIndex monthIndexForDate(const QDate& date) const;
163
167 void setPixmaps(const QPixmap& forYearAlbums,
168 const QPixmap& forMonthAlbums);
169
170public Q_SLOTS:
171
172 void setYearMonthMap(const QMap<YearMonth, int>& yearMonthMap);
173
174protected:
175
176 QString albumName(Album* a) const override;
177 QVariant decorationRoleData(Album* a) const override;
178 QVariant sortRoleData(Album* a) const override;
179 Album* albumForId(int id) const override;
180
181protected:
182
185};
186
187} // namespace Digikam
RootAlbumBehavior
Definition abstractalbummodel.h:50
Definition abstractalbummodel.h:357
Definition abstractalbummodel.h:266
Definition albummodel.h:30
~AlbumModel() override=default
Abstract base class for all album types.
Definition album.h:57
Definition album.h:461
Definition albummodel.h:139
QPixmap m_yearPixmap
Definition albummodel.h:183
QPixmap m_monthPixmap
Definition albummodel.h:184
Definition album.h:357
Definition album.h:494
Definition albummodel.h:89
QHash< int, QPixmap > m_pixmaps
Definition albummodel.h:129
QHash< QString, QString > m_replaceNames
Definition albummodel.h:130
Definition album.h:421
Definition albummodel.h:57
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34