digiKam
Loading...
Searching...
No Matches
undoaction.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 : 2005-02-06
7 * Description : undo actions manager for image editor.
8 *
9 * SPDX-FileCopyrightText: 2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2005 by Joern Ahrens <joern dot ahrens at kdemail dot net>
11 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Local includes
20
21#include "digikam_export.h"
22#include "dimagehistory.h"
23#include "dimg.h"
24#include "dimgbuiltinfilter.h"
25
26namespace Digikam
27{
28
29class EditorCore;
30
31class DIGIKAM_EXPORT UndoMetadataContainer
32{
33public:
34
38 static UndoMetadataContainer fromImage(const DImg& img);
39
43 void toImage(DImg& img) const;
44
45 bool changesIccProfile(const DImg& target) const;
46
47public:
48
51};
52
53// -------------------------------------------------------------------
54
55class DIGIKAM_EXPORT UndoAction
56{
57
58public:
59
60 explicit UndoAction(const EditorCore* const core);
61 virtual ~UndoAction();
62
63 void setTitle(const QString& title);
64 QString getTitle() const;
65
66 void setMetadata(const UndoMetadataContainer&);
67 UndoMetadataContainer getMetadata() const;
68
69 void setFileOriginData(const QVariant& data,
70 const DImageHistory& resolvedInitialHistory);
71 bool hasFileOriginData() const;
72 QVariant fileOriginData() const;
73 DImageHistory fileOriginResolvedHistory() const;
74
75private:
76
77 // Disable
78 UndoAction(const UndoAction&) = delete;
79 UndoAction& operator=(const UndoAction&) = delete;
80
81private:
82
83 class Private;
84 Private* const d = nullptr;
85};
86
87// --------------------------------------------------------------------
88
89class DIGIKAM_EXPORT UndoActionReversible : public UndoAction
90{
91
92public:
93
94 explicit UndoActionReversible(const EditorCore* const core,
95 const DImgBuiltinFilter& reversibleFilter);
96
97 DImgBuiltinFilter getFilter() const;
98 DImgBuiltinFilter getReverseFilter() const;
99
100protected:
101
103};
104
105// --------------------------------------------------------------------
106
107class DIGIKAM_EXPORT UndoActionIrreversible : public UndoAction
108{
109
110public:
111
112 explicit UndoActionIrreversible(const EditorCore* const core,
113 const QString& title = QString());
114 ~UndoActionIrreversible() override = default;
115};
116
117} // namespace Digikam
Definition dimagehistory.h:39
Definition dimgbuiltinfilter.h:34
Definition dimg.h:52
Definition editorcore.h:48
Definition iccprofile.h:33
Definition undoaction.h:108
~UndoActionIrreversible() override=default
Definition undoaction.h:90
DImgBuiltinFilter m_filter
Definition undoaction.h:102
Definition undoaction.h:56
Definition undoaction.h:32
DImageHistory history
Definition undoaction.h:49
IccProfile profile
Definition undoaction.h:50
Definition datefolderview.cpp:34