digiKam
Loading...
Searching...
No Matches
itemscanner_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-09-19
7 * Description : Scanning a single item - private containers.
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 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18#include "itemscanner.h"
19
20// Qt includes
21
22#include <QImageReader>
23#include <QElapsedTimer>
24
25// KDE includes
26
27#include <klocalizedstring.h>
28
29// Local includes
30
31#include "digikam_debug.h"
32#include "digikam_globals.h"
33#include "coredburl.h"
34#include "coredbaccess.h"
35#include "coredb.h"
37#include "similaritydbaccess.h"
38#include "similaritydb.h"
39#include "collectionlocation.h"
40#include "collectionmanager.h"
41#include "facetagseditor.h"
42#include "itemcomments.h"
43#include "itemcopyright.h"
45#include "itemhistorygraph.h"
46#include "metaenginesettings.h"
47#include "tagregion.h"
48#include "tagscache.h"
49#include "iostream"
50#include "dimagehistory.h"
52
53namespace Digikam
54{
55
56class Q_DECL_HIDDEN ItemScannerCommit
57{
58
59public:
60
62 {
65 UpdateItem
66 };
67
68public:
69
70 ItemScannerCommit() = default;
71
72public:
73
74 Operation operation = NoOp;
75
76 qlonglong copyImageAttributesId = -1;
77
78 bool commitItemInformation = false;
79 bool commitImageMetadata = false;
80 bool commitVideoMetadata = false;
81 bool commitItemPosition = false;
82 bool commitItemComments = false;
83 bool commitItemCopyright = false;
84 bool commitFaces = false;
85 bool commitIPTCCore = false;
86 bool hasColorTag = false;
87 bool hasPickTag = false;
88
89 DatabaseFields::ItemInformation imageInformationFields;
91
92 QVariantList imageMetadataInfos;
93 QVariantList imagePositionInfos;
94
96 QString headline;
98
100 QMultiMap<QString, QVariant> metadataFacesMap;
101
103
104 QList<int> tagIds;
105 QString historyXml;
106 QString uuid;
107};
108
109// ---------------------------------------------------------------------------------------
110
112{
113public:
114
115 explicit LessThanByProximityToSubject(const ItemInfo& subject);
116
117 bool operator()(const ItemInfo& a, const ItemInfo& b);
118
119public:
120
122};
123
124// ---------------------------------------------------------------------------
125
126class Q_DECL_HIDDEN ItemScanner::Private
127{
128public:
129
130 Private();
131 ~Private();
132
133public:
134
135 bool hasImage = false;
136 bool hasMetadata = false;
137 bool loadedFromDisk = false;
138
139 QFileInfo fileInfo;
140
141 DMetadata* metadata = nullptr;
144 ItemScanner::ScanMode scanMode = ModifiedScan;
145
146 bool hasHistoryToResolve = false;
147
149
150 QElapsedTimer timer;
151};
152
153} // namespace Digikam
Definition captionvalues.h:59
Definition dimg.h:52
Definition dmetadata.h:46
Definition iteminfo.h:68
Definition coredbalbuminfo.h:236
Definition itemscanner_p.h:57
QList< int > tagIds
Definition itemscanner_p.h:104
Operation
Definition itemscanner_p.h:62
@ AddItem
Definition itemscanner_p.h:64
@ NoOp
Definition itemscanner_p.h:63
CaptionsMap captions
Definition itemscanner_p.h:95
QString headline
Definition itemscanner_p.h:96
QVariantList imagePositionInfos
Definition itemscanner_p.h:93
QVariantList iptcCoreMetadataInfos
Definition itemscanner_p.h:102
QString uuid
Definition itemscanner_p.h:106
QString historyXml
Definition itemscanner_p.h:105
QVariantList imageInformationInfos
Definition itemscanner_p.h:90
QMultiMap< QString, QVariant > metadataFacesMap
Definition itemscanner_p.h:100
QVariantList imageMetadataInfos
Definition itemscanner_p.h:92
Template copyrightTemplate
Definition itemscanner_p.h:99
CaptionsMap titles
Definition itemscanner_p.h:97
DatabaseFields::ItemInformation imageInformationFields
Definition itemscanner_p.h:89
Definition itemscanner_p.h:127
ItemScanInfo scanInfo
Definition itemscanner_p.h:143
DImg img
Definition itemscanner_p.h:142
QElapsedTimer timer
Definition itemscanner_p.h:150
QFileInfo fileInfo
Definition itemscanner_p.h:139
ItemScannerCommit commit
Definition itemscanner_p.h:148
Definition itemscanner.h:34
ScanMode
Definition itemscanner.h:39
Definition itemscanner_p.h:112
ItemInfo subject
Definition itemscanner_p.h:121
Definition template.h:36
Definition datefolderview.cpp:34