digiKam
Loading...
Searching...
No Matches
coredbchangesets.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-12-01
7 * Description : Core database recording changes.
8 *
9 * SPDX-FileCopyrightText: 2007-2008 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17#include "digikam_config.h"
18
19// Qt includes
20
21#include <QList>
22#include <QMetaType>
23
24#ifdef HAVE_DBUS
25# include <QDBusArgument>
26# include "dbenginedbusutils.h"
27#endif
28
29// Local includes
30
31#include "digikam_export.h"
32#include "coredbfields.h"
33
34namespace Digikam
35{
36
37class DIGIKAM_DATABASE_EXPORT ImageChangeset
38{
39public:
40
46 ImageChangeset() = default;
47 ImageChangeset(const QList<qlonglong>& ids, const DatabaseFields::Set& changes);
48 ImageChangeset(qlonglong id, const DatabaseFields::Set& changes);
49
50 QList<qlonglong> ids() const;
51 bool containsImage(qlonglong id) const;
52 DatabaseFields::Set changes() const;
53
54#ifdef HAVE_DBUS
55
56 ImageChangeset& operator<<(const QDBusArgument& argument);
57 const ImageChangeset& operator>>(QDBusArgument& argument) const;
58
59#endif // HAVE_DBUS
60
61private:
62
63 QList<qlonglong> m_ids;
64 DatabaseFields::Set m_changes;
65};
66
67// ----------------------------------------------------------------------------
68
69class DIGIKAM_DATABASE_EXPORT ImageTagChangeset
70{
71public:
72
80 {
86 PropertiesChanged
87 };
88
89public:
90
91 ImageTagChangeset() = default;
92 ImageTagChangeset(const QList<qlonglong>& ids, const QList<int>& tags, Operation operation);
93 ImageTagChangeset(qlonglong id, const QList<int>& tags, Operation operation);
94 ImageTagChangeset(qlonglong id, int tag, Operation operation);
95
103
104#ifdef HAVE_DBUS
105
106 ImageTagChangeset& operator<<(const QDBusArgument& argument);
107 const ImageTagChangeset& operator>>(QDBusArgument& argument) const;
108
109#endif // HAVE_DBUS
110
111 QList<qlonglong> ids() const;
112 bool containsImage(qlonglong id) const;
113 QList<int> tags() const;
114 bool containsTag(int id) const;
115 Operation operation() const;
116
117 bool tagsWereAdded() const
118 {
119 return (operation() == Added);
120 }
121
122 bool tagsWereRemoved() const
123 {
124 return ((operation() == Removed) || (operation() == RemovedAll));
125 }
126
128 {
129 return (operation() == PropertiesChanged);
130 }
131
132private:
133
134 QList<qlonglong> m_ids;
135 QList<int> m_tags;
136 Operation m_operation = Unknown;
137};
138
139// ----------------------------------------------------------------------------
140
141class DIGIKAM_DATABASE_EXPORT CollectionImageChangeset
142{
143public:
144
146 {
148
153
160
167
174
181
188
194 Copied
195 };
196
197public:
198
212 CollectionImageChangeset(const QList<qlonglong>& ids, const QList<int>& albums, Operation operation);
213 CollectionImageChangeset(const QList<qlonglong>& ids, int album, Operation operation);
214 CollectionImageChangeset(qlonglong id, int album, Operation operation);
215
223
224#ifdef HAVE_DBUS
225
226 CollectionImageChangeset& operator<<(const QDBusArgument& argument);
227 const CollectionImageChangeset& operator>>(QDBusArgument& argument) const;
228
229#endif // HAVE_DBUS
230
236 QList<qlonglong> ids() const;
237 bool containsImage(qlonglong id) const;
238 QList<int> albums() const;
239 bool containsAlbum(int id) const;
240 Operation operation() const;
241
242private:
243
244 QList<qlonglong> m_ids;
245 QList<int> m_albums;
246 Operation m_operation = Unknown;
247};
248
249// ----------------------------------------------------------------------------
250
251class DIGIKAM_DATABASE_EXPORT AlbumChangeset
252{
253public:
254
256 {
261 PropertiesChanged
262 };
263
264public:
265
266 AlbumChangeset() = default;
267 AlbumChangeset(int albumId, Operation operation);
268
269 int albumId() const;
270 Operation operation() const;
271
272#ifdef HAVE_DBUS
273
274 AlbumChangeset& operator<<(const QDBusArgument& argument);
275 const AlbumChangeset& operator>>(QDBusArgument& argument) const;
276
277#endif // HAVE_DBUS
278
279private:
280
281 int m_id = -1;
282 Operation m_operation = Unknown;
283};
284
285// ----------------------------------------------------------------------------
286
287class DIGIKAM_DATABASE_EXPORT TagChangeset
288{
289public:
290
302
303public:
304
305 TagChangeset() = default;
306 TagChangeset(int tagId, Operation operation);
307
308 int tagId() const;
309 Operation operation() const;
310
311#ifdef HAVE_DBUS
312
313 TagChangeset& operator<<(const QDBusArgument& argument);
314 const TagChangeset& operator>>(QDBusArgument& argument) const;
315
316#endif // HAVE_DBUS
317
318private:
319
320 int m_id = -1;
321 Operation m_operation = Unknown;
322};
323
324// ----------------------------------------------------------------------------
325
326class DIGIKAM_DATABASE_EXPORT AlbumRootChangeset
327{
328public:
329
331 {
335 PropertiesChanged
336 };
337
338public:
339
341 AlbumRootChangeset(int albumRootId, Operation operation);
342
343 int albumRootId() const;
344 Operation operation() const;
345
346#ifdef HAVE_DBUS
347
348 AlbumRootChangeset& operator<<(const QDBusArgument& argument);
349 const AlbumRootChangeset& operator>>(QDBusArgument& argument) const;
350
351#endif // HAVE_DBUS
352
353private:
354
355 int m_id = -1;
356 Operation m_operation = Unknown;
357};
358
359// ----------------------------------------------------------------------------
360
361class DIGIKAM_DATABASE_EXPORT SearchChangeset
362{
363public:
364
366 {
370 Changed
371 };
372
373public:
374
375 SearchChangeset() = default;
376 SearchChangeset(int searchId, Operation operation);
377
378 int searchId() const;
379 Operation operation() const;
380
381#ifdef HAVE_DBUS
382
383 SearchChangeset& operator<<(const QDBusArgument& argument);
384 const SearchChangeset& operator>>(QDBusArgument& argument) const;
385
386#endif // HAVE_DBUS
387
388private:
389
390 int m_id = -1;
391 Operation m_operation = Unknown;
392};
393
394} // namespace Digikam
395
396#ifdef HAVE_DBUS
397
398// custom macro from our dbusutilities.h
407
408#endif // HAVE_DBUS
Definition coredbchangesets.h:252
Operation
Definition coredbchangesets.h:256
@ Unknown
Definition coredbchangesets.h:257
@ Deleted
Definition coredbchangesets.h:259
@ Added
Definition coredbchangesets.h:258
@ Renamed
Definition coredbchangesets.h:260
Definition coredbchangesets.h:327
Operation
Definition coredbchangesets.h:331
@ Deleted
Definition coredbchangesets.h:334
@ Unknown
Definition coredbchangesets.h:332
@ Added
Definition coredbchangesets.h:333
Definition coredbchangesets.h:142
Operation
Definition coredbchangesets.h:146
@ Removed
Definition coredbchangesets.h:159
@ Added
Definition coredbchangesets.h:152
@ Deleted
Definition coredbchangesets.h:173
@ Moved
Definition coredbchangesets.h:187
@ RemovedDeleted
Definition coredbchangesets.h:180
@ RemovedAll
Definition coredbchangesets.h:166
@ Unknown
Definition coredbchangesets.h:147
Definition coredbfields.h:376
Definition coredbchangesets.h:38
Definition coredbchangesets.h:70
bool tagsWereAdded() const
Definition coredbchangesets.h:117
bool tagsWereRemoved() const
Definition coredbchangesets.h:122
Operation
Definition coredbchangesets.h:80
@ Added
Definition coredbchangesets.h:82
@ RemovedAll
Definition coredbchangesets.h:85
@ Removed
Definition coredbchangesets.h:84
@ Moved
Definition coredbchangesets.h:83
@ Unknown
Definition coredbchangesets.h:81
bool propertiesWereChanged() const
Definition coredbchangesets.h:127
Definition coredbchangesets.h:362
Operation
Definition coredbchangesets.h:366
@ Deleted
Definition coredbchangesets.h:369
@ Unknown
Definition coredbchangesets.h:367
@ Added
Definition coredbchangesets.h:368
Definition coredbchangesets.h:288
Operation
Definition coredbchangesets.h:292
@ Added
Definition coredbchangesets.h:294
@ Unknown
Definition coredbchangesets.h:293
@ IconChanged
Definition coredbchangesets.h:299
@ Moved
Definition coredbchangesets.h:295
@ Deleted
Definition coredbchangesets.h:296
@ Reparented
Definition coredbchangesets.h:298
@ Renamed
Definition coredbchangesets.h:297
#define DECLARE_METATYPE_FOR_DBUS(x)
Definition dbenginedbusutils.h:19
Definition datefolderview.cpp:34
QDataStream & operator<<(QDataStream &dataStream, const unsigned long &in)
Definition qdatastreamoverloads.cpp:29
QDataStream & operator>>(QDataStream &dataStream, unsigned long &in)
Definition qdatastreamoverloads.cpp:19