digiKam
Loading...
Searching...
No Matches
itemcomments.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 : Access to comments of an item in the database
8 *
9 * SPDX-FileCopyrightText: 2007-2013 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2008 by Patrick Spendrin <ps_ml at gmx 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 <QString>
22#include <QDateTime>
23#include <QSharedDataPointer>
24#include <QSharedData>
25#include <QSet>
26
27// Local includes
28
29#include "digikam_export.h"
30#include "coredbalbuminfo.h"
31#include "captionvalues.h"
32#include "coredbaccess.h"
33
34namespace Digikam
35{
36
37class DIGIKAM_DATABASE_EXPORT ItemComments
38{
39public:
40
52 {
59
64
69 ReturnMatchingDefaultOrFirstLanguage
70 };
71
73 {
78
82 UniquePerLanguageAndAuthor
83 };
84
85public:
86
91
95 explicit ItemComments(qlonglong imageid);
96
101 ItemComments(const CoreDbAccess& access, qlonglong imageid);
102
103 ItemComments(const ItemComments& other);
105
106 ItemComments& operator=(const ItemComments& other);
107
108 bool isNull() const;
109
116 void setUniqueBehavior(UniqueBehavior behavior);
117
123 QString defaultComment(DatabaseComment::Type type = DatabaseComment::Comment) const;
124
125 QString defaultComment(int* const index, Digikam::DatabaseComment::Type type = DatabaseComment::Comment) const;
126
132 QString commentForLanguage(const QString& languageCode, int* const index = nullptr,
133 LanguageChoiceBehavior behavior = ReturnMatchingDefaultOrFirstLanguage) const;
134
138 int numberOfComments() const;
139
143 DatabaseComment::Type type(int index) const;
144
148 QString language(int index) const;
149
150 QString author(int index) const;
151 QDateTime date(int index) const;
152 QString comment(int index) const;
153
161 void addComment(const QString& comment,
162 const QString& language = QString(),
163 const QString& author = QString(),
164 const QDateTime& date = QDateTime(),
165 DatabaseComment::Type type = DatabaseComment::Comment);
166
170 void addHeadline(const QString& headline,
171 const QString& language = QString(),
172 const QString& author = QString(),
173 const QDateTime& date = QDateTime());
174
178 void addTitle(const QString& title,
179 const QString& language = QString(),
180 const QString& author = QString(),
181 const QDateTime& date = QDateTime());
182
187 void replaceComments(const CaptionsMap& comments,
188 DatabaseComment::Type type = DatabaseComment::Comment);
189
193 void remove(int index);
194
198 void removeAll(DatabaseComment::Type type);
199
203 void removeAllComments();
204
208 void removeAll();
209
214 void changeComment(int index, const QString& comment);
215 void changeLanguage(int index, const QString& language);
216 void changeAuthor(int index, const QString& author);
217 void changeDate(int index, const QDateTime& date);
218 void changeType(int index, DatabaseComment::Type type);
219
224 void apply();
225 void apply(CoreDbAccess& access);
226
230 CaptionsMap toCaptionsMap(DatabaseComment::Type = DatabaseComment::Comment) const;
231
235 void replaceFrom(const ItemComments& source);
236
237protected:
238
239 void addCommentDirectly(const QString& comment,
240 const QString& language,
241 const QString& author,
243 const QDateTime& date);
244public:
245
246 class Private;
247
248protected:
249
250 QSharedDataPointer<Private> d;
251};
252
253} // namespace Digikam
Definition captionvalues.h:59
Definition coredbaccess.h:46
Definition itemcomments.h:38
UniqueBehavior
Definition itemcomments.h:73
@ UniquePerLanguage
Definition itemcomments.h:77
LanguageChoiceBehavior
Definition itemcomments.h:52
@ ReturnMatchingOrDefaultLanguage
Definition itemcomments.h:63
@ ReturnMatchingLanguageOnly
Definition itemcomments.h:58
QSharedDataPointer< Private > d
Definition itemcomments.h:250
Type
Definition coredbconstants.h:106
Definition datefolderview.cpp:34