digiKam
Loading...
Searching...
No Matches
albumthumbnailloader.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 : 2006-04-14
7 * Description : Load and cache tag thumbnails
8 *
9 * SPDX-FileCopyrightText: 2006-2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QObject>
21#include <QPixmap>
22
23// Local includes
24
25#include "digikam_export.h"
26
27namespace Digikam
28{
29class Album;
30class TAlbum;
31class PAlbum;
32class LoadingDescription;
33
34class DIGIKAM_GUI_EXPORT AlbumThumbnailLoader : public QObject
35{
36 Q_OBJECT
37
38public:
39
50 {
52 SmallerSize
53 };
54
55public:
56
57 void cleanUp();
58
64 void setThumbnailSize(int size, int face);
65
69 int thumbnailSize() const;
70
78 bool getAlbumThumbnail(PAlbum* const album);
79
89 QPixmap getAlbumThumbnailDirectly(PAlbum* const album);
90
108 bool getTagThumbnail(TAlbum* const album, QPixmap& icon);
109
119 QPixmap getTagThumbnailDirectly(TAlbum* const album);
120
126 QPixmap getFaceThumbnailDirectly(TAlbum* const album);
127
133 QPixmap getStandardTagIcon(RelativeSize size = NormalSize);
134 QPixmap getStandardTagRootIcon(RelativeSize size = NormalSize);
135 QPixmap getStandardTagIcon(TAlbum* const album, RelativeSize size = NormalSize);
136 QPixmap getStandardFaceIcon(TAlbum* const album, RelativeSize size = NormalSize);
137 QPixmap getNewTagIcon(RelativeSize size = NormalSize);
138
139 QPixmap getStandardAlbumIcon(PAlbum* const album, RelativeSize size = NormalSize);
140 QPixmap getStandardEmptyTrashIcon(RelativeSize size = NormalSize);
141 QPixmap getStandardFullTrashIcon(RelativeSize size = NormalSize);
142 QPixmap getStandardAlbumRootIcon(RelativeSize size = NormalSize);
143 QPixmap getStandardOfflineIcon(RelativeSize size = NormalSize);
144 QPixmap getStandardAlbumIcon(RelativeSize size = NormalSize);
145
150/*
151 QImage getAlbumPreviewDirectly(PAlbum* const album, int size);
152*/
153
154public:
155
156 static AlbumThumbnailLoader* instance();
157
158Q_SIGNALS:
159
166 void signalThumbnail(Album* album, const QPixmap&);
167
171 void signalFailed(Album* album);
172
178
182 void signalDispatchThumbnailInternal(int albumID, const QPixmap& thumbnail);
183
184protected Q_SLOTS:
185
186 void slotGotThumbnailFromIcon(const LoadingDescription& loadingDescription, const QPixmap& pixmap);
187 void slotIconChanged(Album* album);
188 void slotDispatchThumbnailInternal(int albumID, const QPixmap& thumbnail);
189
190private:
191
192 // Disable
194 explicit AlbumThumbnailLoader(QObject*) = delete;
195 ~AlbumThumbnailLoader() override;
196
197 void addUrl(Album* const album, qlonglong id);
198 QPixmap loadIcon(const QString& name, int size = 0) const;
199 int computeIconSize(RelativeSize size) const;
200 int computeFaceSize(RelativeSize size) const;
201
202private:
203
204 friend class AlbumThumbnailLoaderCreator;
205
206 class Private;
207 Private* const d = nullptr;
208};
209
210} // namespace Digikam
Definition albumthumbnailloader.h:35
void signalDispatchThumbnailInternal(int albumID, const QPixmap &thumbnail)
void signalThumbnail(Album *album, const QPixmap &)
void signalFailed(Album *album)
RelativeSize
Definition albumthumbnailloader.h:50
@ NormalSize
Definition albumthumbnailloader.h:51
Abstract base class for all album types.
Definition album.h:57
Definition loadingdescription.h:35
Definition album.h:357
Definition album.h:421
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34