digiKam
Loading...
Searching...
No Matches
itemthumbnailmodel.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 : 2009-03-05
7 * Description : Qt item model for database entries with support for thumbnail loading
8 *
9 * SPDX-FileCopyrightText: 2009-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Local includes
19
20#include "itemmodel.h"
21#include "thumbnailsize.h"
22#include "digikam_export.h"
23
24namespace Digikam
25{
26
27class LoadingDescription;
28class ThumbnailLoadThread;
29
30class DIGIKAM_DATABASE_EXPORT ItemThumbnailModel : public ItemModel
31{
32 Q_OBJECT
33
34public:
35
42 explicit ItemThumbnailModel(QWidget* const parent);
43 ~ItemThumbnailModel() override;
44
49 void setThumbnailLoadThread(ThumbnailLoadThread* const thread);
50 ThumbnailLoadThread* thumbnailLoadThread() const;
51
53 void setThumbnailSize(const ThumbnailSize& thumbSize);
54
56 void setPreloadThumbnailSize(const ThumbnailSize& thumbSize);
57
58 void setExifRotate(bool rotate);
59
65 void setEmitDataChanged(bool emitSignal);
66
72 void setPreloadThumbnails(bool preload);
73
74 ThumbnailSize thumbnailSize() const;
75
82 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
83
89 bool setData(const QModelIndex& index,
90 const QVariant& value,
91 int role = Qt::DisplayRole) override;
92
93public Q_SLOTS:
94
103 void preloadThumbnails(const QList<ItemInfo>&);
104 void preloadThumbnails(const QList<QModelIndex>&);
105 void preloadAllThumbnails();
106
107Q_SIGNALS:
108
109 void thumbnailAvailable(const QModelIndex& index, int requestedSize);
110 void thumbnailFailed(const QModelIndex& index, int requestedSize);
111
112protected:
113
114 void imageInfosCleared() override;
115
116protected Q_SLOTS:
117
118 void slotThumbnailLoadedFromStorage(const LoadingDescription& loadingDescription,
119 const QPixmap& thumb);
120 void slotThumbnailLoaded(const LoadingDescription& loadingDescription,
121 const QPixmap& thumb);
122
123private:
124
125 // Disable
126 ItemThumbnailModel(const ItemThumbnailModel&) = delete;
127 ItemThumbnailModel& operator=(const ItemThumbnailModel&) = delete;
128
129 class Private;
130 Private* const d = nullptr;
131};
132
133} // namespace Digikam
Definition itemmodel.h:44
Definition itemthumbnailmodel.h:31
void thumbnailFailed(const QModelIndex &index, int requestedSize)
void thumbnailAvailable(const QModelIndex &index, int requestedSize)
void setExifRotate(bool rotate)
Definition loadingdescription.h:35
Definition thumbnailloadthread.h:36
Definition thumbnailsize.h:32
qulonglong value
Definition itemviewutilities.cpp:585
Definition datefolderview.cpp:34