digiKam
Loading...
Searching...
No Matches
metadatahub.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-01-05
7 * Description : Metadata handling
8 *
9 * SPDX-FileCopyrightText: 2007-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2007-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// Qt includes
19
20#include <QList>
21#include <QStringList>
22#include <QDateTime>
23#include <QMap>
24
25// Local includes
26
27#include "metaenginesettings.h"
28#include "captionvalues.h"
29#include "dmetadata.h"
30#include "dimg.h"
31
32namespace Digikam
33{
34
35class ApplicationSettings;
36class ItemInfo;
37class Template;
38
40{
41public:
42
53
79
93 Q_DECLARE_FLAGS(WriteComponent, WriteComponents)
94
95public:
96
100 MetadataHub();
101 ~MetadataHub();
102
103 void reset();
104
105 // --------------------------------------------------
106
113 void load(const ItemInfo& info);
114
115// /**
116// * Add metadata information from the meta engine object
117// */
118// void load(const DMetadata& metadata);
119
120// /**
121// * Load metadata information from the given file.
122// * (Uses DMetadata, QFileInfo)
123// * @returns True if the metadata could be loaded
124// */
125// bool load(const QString& filePath, const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
126
127 // --------------------------------------------------
128
137 bool writeToMetadata(const ItemInfo& info,
138 WriteComponent writeMode = WRITE_ALL,
139 bool ignoreLazySync = false,
140 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
141
142
152 bool write(const QString& filePath,
153 WriteComponent writeMode = WRITE_ALL,
154 bool ignoreLazySync = false,
155 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
156
162 bool write(const DImg& image,
163 WriteComponent writeMode = WRITE_ALL,
164 bool ignoreLazySync = false,
165 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
166
172 bool writeTags(const QString& filePath,
173 WriteComponent writeMode = WRITE_ALL,
174 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
175
183 bool writeTags(const DMetadata& metadata, bool saveTags);
184
190 QStringList cleanupTags(const QStringList& toClean);
191
197 bool willWriteMetadata(Digikam::MetadataHub::WriteComponent writeMode = WRITE_ALL,
198 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings()) const;
199
205 void writeToBaloo(const QString& filePath,
206 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
207
208protected:
209
229 bool write(DMetadata& metadata,
230 WriteComponent writeMode = WRITE_ALL,
231 const MetaEngineSettingsContainer& settings = MetaEngineSettings::instance()->settings());
232
233 void load(const QDateTime& dateTime,
234 const CaptionsMap& titles,
235 const CaptionsMap& comment,
236 int colorLabel, int pickLabel,
237 int rating, const Template& t);
238
239 void loadTags(const QList<int>& loadedTagIds);
240 void loadFaceTags(const ItemInfo& info);
241
242 void notifyTagDeleted(int id);
243
245
246private:
247
248 bool writeFaceTagsMap(const DMetadata& metadata, bool saveFaces);
249
250private:
251
252 class Private;
253 Private* const d = nullptr;
254
255private:
256
257 Q_DISABLE_COPY(MetadataHub)
258};
259
260} // namespace Digikam
261
262Q_DECLARE_OPERATORS_FOR_FLAGS(Digikam::MetadataHub::WriteComponent)
Definition captionvalues.h:59
Definition dimg.h:52
Definition dmetadata.h:46
Definition iteminfo.h:68
Definition metaenginesettingscontainer.h:38
static MetaEngineSettings * instance()
Definition metaenginesettings.cpp:93
Definition metadatahub.h:40
QStringList cleanupTags(const QStringList &toClean)
cleanupTags - remove duplicates and obsolete tags before setting metadata
Definition metadatahub.cpp:585
Status
Definition metadatahub.h:49
@ MetadataAvailable
only one data set has been added, or a common value is available
Definition metadatahub.h:51
@ MetadataInvalid
not yet filled with any value
Definition metadatahub.h:50
void reset()
Definition metadatahub.cpp:102
WriteMode
Definition metadatahub.h:55
@ PartialWrite
Definition metadatahub.h:77
@ FullWrite
Definition metadatahub.h:59
@ FullWriteIfChanged
Definition metadatahub.h:70
bool write(const QString &filePath, WriteComponent writeMode=WRITE_ALL, bool ignoreLazySync=false, const MetaEngineSettingsContainer &settings=MetaEngineSettings::instance() ->settings())
Definition metadatahub.cpp:351
~MetadataHub()
Definition metadatahub.cpp:97
void writeToBaloo(const QString &filePath, const MetaEngineSettingsContainer &settings=MetaEngineSettings::instance() ->settings())
writeToBaloo - write tags, comments and rating to KDE Nepomuk replacement: Baloo
Definition metadatahub.cpp:641
bool writeToMetadata(const ItemInfo &info, WriteComponent writeMode=WRITE_ALL, bool ignoreLazySync=false, const MetaEngineSettingsContainer &settings=MetaEngineSettings::instance() ->settings())
writeToMetadata - write to metadata using image info to retrieve tags and filepath use this method wh...
Definition metadatahub.cpp:213
bool willWriteMetadata(Digikam::MetadataHub::WriteComponent writeMode=WRITE_ALL, const MetaEngineSettingsContainer &settings=MetaEngineSettings::instance() ->settings()) const
Definition metadatahub.cpp:611
void notifyTagDeleted(int id)
MetadataHub()
Definition metadatahub.cpp:92
void loadFaceTags(const ItemInfo &info)
Definition metadatahub.cpp:707
void loadTags(const QList< int > &loadedTagIds)
Definition metadatahub.cpp:143
void applyChangeNotifications()
Definition metadatahub.cpp:703
WriteComponents
Definition metadatahub.h:81
@ WRITE_TEMPLATE
Definition metadatahub.h:88
@ WRITE_RATING
Definition metadatahub.h:87
@ WRITE_TITLE
Definition metadatahub.h:83
@ WRITE_COLORLABEL
Definition metadatahub.h:86
@ WRITE_TAGS
Definition metadatahub.h:89
@ WRITE_DATETIME
Definition metadatahub.h:82
@ WRITE_POSITION
Definition metadatahub.h:90
@ WRITE_COMMENTS
Definition metadatahub.h:84
@ WRITE_ALL
Definition metadatahub.h:91
@ WRITE_PICKLABEL
Definition metadatahub.h:85
void load(const ItemInfo &info)
Definition metadatahub.cpp:109
bool writeTags(const QString &filePath, WriteComponent writeMode=WRITE_ALL, const MetaEngineSettingsContainer &settings=MetaEngineSettings::instance() ->settings())
Definition metadatahub.cpp:431
Definition template.h:36
Definition datefolderview.cpp:34