digiKam
Loading...
Searching...
No Matches
dimagehistory.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 : 2010-06-02
7 * Description : class for manipulating modifications changeset for non-destruct. editing
8 *
9 * SPDX-FileCopyrightText: 2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek 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 <QXmlStreamWriter>
21#include <QXmlStreamReader>
22#include <QHash>
23#include <QList>
24#include <QMetaType>
25#include <QSharedDataPointer>
26#include <QString>
27#include <QVariant>
28
29// Local includes
30
31#include "digikam_export.h"
32#include "filteraction.h"
33#include "historyimageid.h"
34
35namespace Digikam
36{
37
38class DIGIKAM_EXPORT DImageHistory
39{
40public:
41
42 class Entry
43 {
44 public:
45
59 QList<HistoryImageId> referredImages;
60 };
61
62public:
63
65 DImageHistory(const DImageHistory& other);
67
68 DImageHistory& operator=(const DImageHistory& other);
69
73 bool isNull() const;
74
78 bool isEmpty() const;
79
86 bool isValid() const;
87
89 int size() const;
90
91 bool operator==(const DImageHistory& other) const;
92
93 bool operator!=(const DImageHistory& other) const
94 {
95 return !operator==(other);
96 }
97
98 bool operator<(const DImageHistory& other) const;
99 bool operator>(const DImageHistory& other) const;
100
104 DImageHistory& operator<<(const FilterAction& action);
105
111 DImageHistory& operator<<(const HistoryImageId& imageId);
112
113 void appendReferredImage(const HistoryImageId& id);
114 void insertReferredImage(int entryIndex, const HistoryImageId& id);
115
117 void removeLast();
118
123 QList<DImageHistory::Entry>& entries();
124 const QList<DImageHistory::Entry>& entries() const;
125 Entry& operator[](int i);
126 const Entry& operator[](int i) const;
127
136 bool hasActions() const;
137 bool hasFilters() const
138 {
139 return hasActions();
140 }
141
143 int actionCount() const;
144
146 QList<FilterAction> allActions() const;
147 const FilterAction& action(int i) const;
148
152 QList<HistoryImageId>& referredImages(int i);
153 const QList<HistoryImageId>& referredImages(int i) const;
154 QList<HistoryImageId> allReferredImages() const;
155 HistoryImageId currentReferredImage() const;
156 HistoryImageId originalReferredImage() const;
157 QList<HistoryImageId> referredImagesOfType(HistoryImageId::Type type) const;
158 bool hasReferredImages() const;
159 bool hasReferredImageOfType(HistoryImageId::Type type) const;
160 bool hasCurrentReferredImage() const;
161 bool hasOriginalReferredImage() const;
162
168 void clearReferredImages();
169
176 void adjustReferredImages();
177
179 void adjustCurrentUuid(const QString& uuid);
180
188 void purgePathFromReferredImages(const QString& path, const QString& fileName);
189
193 void moveCurrentReferredImage(const QString& newPath, const QString& newFileName);
194
202 QString toXml() const;
203 static DImageHistory fromXml(const QString& xml);
204
205public:
206
208 class Private;
209
210private:
211
212 QSharedDataPointer<Private> d;
213};
214
215} // namespace Digikam
216
217Q_DECLARE_METATYPE(Digikam::DImageHistory)
Definition dimagehistory.h:43
QList< HistoryImageId > referredImages
Definition dimagehistory.h:59
FilterAction action
Definition dimagehistory.h:58
Definition dimagehistory.h:39
bool operator!=(const DImageHistory &other) const
Definition dimagehistory.h:93
bool hasFilters() const
Definition dimagehistory.h:137
Definition filteraction.h:33
Definition historyimageid.h:32
Type
Definition historyimageid.h:36
Definition datefolderview.cpp:34
bool operator<(const ThumbnailIdentifier &a, const ThumbnailIdentifier &b)
Definition albumthumbnailloader.cpp:88
bool operator==(const SearchTextSettings &a, const SearchTextSettings &b)
Definition searchtextbar.cpp:40
FileReadWriteLockPriv Entry
Definition filereadwritelock.cpp:66
QDataStream & operator<<(QDataStream &dataStream, const unsigned long &in)
Definition qdatastreamoverloads.cpp:29