digiKam
Loading...
Searching...
No Matches
iteminfodata.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-05-01
7 * Description : ItemInfo common data
8 *
9 * SPDX-FileCopyrightText: 2007-2013 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2013-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QList>
22#include <QSize>
23#include <QDateTime>
24#include <QSharedData>
25#include <QReadWriteLock>
26#include <QWriteLocker>
27#include <QReadLocker>
28
29// Local includes
30
31#include "coredburl.h"
32#include "coredbalbuminfo.h"
33#include "iteminfocache.h"
34#include "digikam_globals.h"
35
36namespace Digikam
37{
38
40{
41public:
42
43 static void create();
44 static void destroy();
45
46 static ItemInfoCache* cache();
47
48public:
49
51 QReadWriteLock m_lock;
52
54};
55
56// -----------------------------------------------------------------------------------
57
58class ItemInfoReadLocker : public QReadLocker
59{
60public:
61
63 : QReadLocker(&ItemInfoStatic::m_instance->m_lock)
64 {
65 }
66};
67
68// -----------------------------------------------------------------------------------
69
70class ItemInfoWriteLocker : public QWriteLocker
71{
72public:
73
75 : QWriteLocker(&ItemInfoStatic::m_instance->m_lock)
76 {
77 }
78};
79
80// -----------------------------------------------------------------------------------
81
82class ItemInfoData : public QSharedData
83{
84public:
85
86 ItemInfoData() = default;
87 ~ItemInfoData() = default;
88
89public:
90
91 qlonglong id = -1;
92 qlonglong currentReferenceImage = -1;
93 int albumId = -1;
94 int albumRootId = -1;
95 QString name;
96
98 QString defaultTitle;
101 qint8 rating = -1;
103 QString format;
104 QDateTime creationDate;
106 int orientation = 0;
107 qlonglong fileSize = 0;
108 qlonglong manualOrder = 0;
109 QString uniqueHash;
111 QList<int> tagIds;
112 int faceCount = 0;
114 QMap<QString, QString> faceSuggestions;
115
116 double longitude = 0;
117 double latitude = 0;
118 double altitude = 0;
119 double currentSimilarity = 0.0;
120
122 qlonglong groupImage = -1;
123
124 bool hasCoordinates = false;
125 bool hasAltitude = false;
126
127 bool defaultTitleCached = false;
129 bool pickLabelCached = false;
130 bool colorLabelCached = false;
131 bool ratingCached = false;
132 bool categoryCached = false;
133 bool formatCached = false;
134 bool creationDateCached = false;
136 bool orientationCached = false;
137 bool fileSizeCached = false;
138 bool manualOrderCached = false;
139 bool uniqueHashCached = false;
140 bool imageSizeCached = false;
141 bool tagIdsCached = false;
142 bool positionsCached = false;
143 bool groupImageCached = false;
146 bool faceCountCached = false;
147
148 bool invalid = false;
149
150 // These two are initially true because we assume the data is there.
151 // Once we query the data and find out it is missing, we set them to false.
152
153 bool hasVideoMetadata = true;
154 bool hasImageMetadata = true;
155
156
159
162};
163
164} // namespace Digikam
Definition coredbfields.h:521
Definition iteminfocache.h:38
Definition iteminfodata.h:83
bool positionsCached
Definition iteminfodata.h:142
QString defaultComment
Definition iteminfodata.h:97
bool formatCached
Definition iteminfodata.h:133
QDateTime creationDate
Definition iteminfodata.h:104
qlonglong manualOrder
Definition iteminfodata.h:108
QString format
Definition iteminfodata.h:103
double longitude
Definition iteminfodata.h:116
int faceCount
Definition iteminfodata.h:112
bool hasAltitude
Definition iteminfodata.h:125
bool orientationCached
Definition iteminfodata.h:136
QList< int > tagIds
Definition iteminfodata.h:111
bool faceSuggestionsCached
Definition iteminfodata.h:145
qlonglong fileSize
Definition iteminfodata.h:107
bool defaultCommentCached
Definition iteminfodata.h:128
QString defaultTitle
Definition iteminfodata.h:98
int albumId
Definition iteminfodata.h:93
double latitude
Definition iteminfodata.h:117
QMap< QString, QString > faceSuggestions
Definition iteminfodata.h:114
bool tagIdsCached
Definition iteminfodata.h:141
bool ratingCached
Definition iteminfodata.h:131
bool fileSizeCached
Definition iteminfodata.h:137
QString uniqueHash
Definition iteminfodata.h:109
bool faceCountCached
Definition iteminfodata.h:146
bool unconfirmedFaceCountCached
Definition iteminfodata.h:144
bool pickLabelCached
Definition iteminfodata.h:129
double altitude
Definition iteminfodata.h:118
bool defaultTitleCached
Definition iteminfodata.h:127
int unconfirmedFaceCount
Definition iteminfodata.h:113
bool hasCoordinates
Definition iteminfodata.h:124
QSize imageSize
Definition iteminfodata.h:110
DatabaseFields::Hash< QVariant > DatabaseFieldsHashRaw
Definition iteminfodata.h:160
QDateTime modificationDate
Definition iteminfodata.h:105
bool uniqueHashCached
Definition iteminfodata.h:139
bool creationDateCached
Definition iteminfodata.h:134
bool groupImageCached
Definition iteminfodata.h:143
bool hasImageMetadata
Definition iteminfodata.h:154
quint8 pickLabel
Definition iteminfodata.h:99
qint8 rating
Definition iteminfodata.h:101
int albumRootId
Definition iteminfodata.h:94
DatabaseItem::Category category
Definition iteminfodata.h:102
DatabaseFieldsHashRaw databaseFieldsHashRaw
Definition iteminfodata.h:161
quint8 colorLabel
Definition iteminfodata.h:100
DatabaseFields::VideoMetadataMinSizeType videoMetadataCached
Definition iteminfodata.h:157
bool imageSizeCached
Definition iteminfodata.h:140
bool colorLabelCached
Definition iteminfodata.h:130
bool categoryCached
Definition iteminfodata.h:132
bool invalid
Definition iteminfodata.h:148
bool hasVideoMetadata
Definition iteminfodata.h:153
QString name
Definition iteminfodata.h:95
bool modificationDateCached
Definition iteminfodata.h:135
DatabaseFields::ImageMetadataMinSizeType imageMetadataCached
Definition iteminfodata.h:158
bool manualOrderCached
Definition iteminfodata.h:138
qlonglong groupImage
group leader, if the image is grouped
Definition iteminfodata.h:122
int orientation
Definition iteminfodata.h:106
double currentSimilarity
Definition iteminfodata.h:119
qlonglong currentReferenceImage
Definition iteminfodata.h:92
Definition iteminfodata.h:59
ItemInfoReadLocker()
Definition iteminfodata.h:62
Definition iteminfodata.h:40
static ItemInfoCache * cache()
Definition iteminfodata.cpp:42
static void create()
Definition iteminfodata.cpp:28
QReadWriteLock m_lock
Definition iteminfodata.h:51
static ItemInfoStatic * m_instance
Definition iteminfodata.h:53
ItemInfoCache m_cache
Definition iteminfodata.h:50
static void destroy()
Definition iteminfodata.cpp:36
Definition iteminfodata.h:71
ItemInfoWriteLocker()
Definition iteminfodata.h:74
uint8_t VideoMetadataMinSizeType
Definition coredbfields.h:226
@ VideoMetadataNone
Definition coredbfields.h:207
uint16_t ImageMetadataMinSizeType
Definition coredbfields.h:140
@ ImageMetadataNone
Definition coredbfields.h:103
Category
Definition coredbconstants.h:69
@ UndefinedCategory
Definition coredbconstants.h:71
Definition datefolderview.cpp:34
@ NoColorLabel
Definition digikam_globals.h:91
@ NoPickLabel
Definition digikam_globals.h:110