digiKam
Loading...
Searching...
No Matches
thumbnailcreator_p.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 : 2007-07-20
7 * Description : Loader for thumbnails
8 *
9 * SPDX-FileCopyrightText: 2003-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2003-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19#include "thumbnailcreator.h"
20
21// Qt includes
22
23#include <QUrl>
24#include <QFile>
25#include <QBuffer>
26#include <QPainter>
27#include <QIODevice>
28#include <QFileInfo>
29#include <QUrlQuery>
30#include <QApplication>
31#include <QMimeDatabase>
32#include <QTemporaryFile>
33#include <QScopedPointer>
34#include <QStandardPaths>
35
36// KDE includes
37
38#include <klocalizedstring.h>
39
40// Local includes
41
42#include "digikam_config.h"
43#include "metaengine_previews.h"
44#include "metaengine_rotation.h"
45#include "filereadwritelock.h"
46#include "drawdecoder.h"
47#include "drawfiles.h"
48#include "digikam_debug.h"
49#include "dimg.h"
50#include "dimgloader.h"
51#include "dimgloaderobserver.h"
52#include "dmetadata.h"
53#include "iccmanager.h"
54#include "iccprofile.h"
55#include "iccsettings.h"
56#include "loadsavethread.h"
57#include "jpegutils.h"
58#include "pgfutils.h"
59#include "tagregion.h"
60#include "thumbsdbaccess.h"
61#include "thumbsdb.h"
62#include "thumbsdbbackend.h"
63#include "thumbnailsize.h"
64
65#ifdef HAVE_MEDIAPLAYER
66# include "videothumbnailer.h"
67# include "videostripfilter.h"
68#endif
69
70namespace Digikam
71{
72
74{
75public:
76
77 ThumbnailImage() = default;
78
79 bool isNull() const
80 {
81 return qimage.isNull();
82 }
83
84public:
85
86 QImage qimage;
88};
89
90// -------------------------------------------------------------------
91
92class Q_DECL_HIDDEN ThumbnailCreator::Private
93{
94public:
95
97 {
98 fastRawSettings.optimizeTimeLoading();
99 fastRawSettings.rawPrm.halfSizeColorImage = true;
100 fastRawSettings.rawPrm.sixteenBitsImage = false;
101 }
102
103 int storageSize() const;
104
105public:
106
107 bool exifRotate = true;
108 bool removeAlphaChannel = true;
109 bool onlyLargeThumbnails = false;
110
111 ThumbnailCreator::StorageMethod thumbnailStorage = ThumbnailCreator::FreeDesktopStandard;
112 ThumbnailInfoProvider* infoProvider = nullptr;
113 int dbIdForReplacement = -1;
114
115 int thumbnailSize = 0;
116
117 QString error;
120
121 // Used internally as PNG metadata. Do not use i18n.
122 QString digiKamFingerPrint = QLatin1String("Digikam Thumbnail Generator");
123
125
126 DImgLoaderObserver* observer = nullptr;
129};
130
131} // namespace Digikam
Definition dimgloaderobserver.h:31
Definition drawdecoding.h:38
@ ORIENTATION_UNSPECIFIED
Definition metaengine.h:87
Definition thumbnailcreator_p.h:93
QString smallThumbPath
Definition thumbnailcreator_p.h:119
DRawDecoding rawSettings
Definition thumbnailcreator_p.h:127
QString error
Definition thumbnailcreator_p.h:117
Private()
Definition thumbnailcreator_p.h:96
QString bigThumbPath
Definition thumbnailcreator_p.h:118
QImage alphaImage
Definition thumbnailcreator_p.h:124
DRawDecoding fastRawSettings
Definition thumbnailcreator_p.h:128
Definition thumbnailcreator.h:41
StorageMethod
Definition thumbnailcreator.h:45
Definition thumbnailcreator_p.h:74
int exifOrientation
Definition thumbnailcreator_p.h:87
bool isNull() const
Definition thumbnailcreator_p.h:79
QImage qimage
Definition thumbnailcreator_p.h:86
Definition thumbnailinfo.h:105
Definition datefolderview.cpp:34