digiKam
Loading...
Searching...
No Matches
editorcore.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 : 2003-01-15
7 * Description : DImg interface for image editor
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2004-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 <QObject>
21#include <QString>
22#include <QByteArray>
23
24// Local includes
25
26#include "digikam_export.h"
27#include "dimg.h"
28#include "dimagehistory.h"
29#include "versionmanager.h"
30
31class QWidget;
32class QPixmap;
33
34namespace Digikam
35{
36
37class UndoState;
38class ICCSettingsContainer;
39class ExposureSettingsContainer;
40class IOFileSettings;
41class LoadingDescription;
42class DImgBuiltinFilter;
43class UndoAction;
44class UndoMetadataContainer;
45class VersionFileOperation;
46
47class DIGIKAM_EXPORT EditorCore : public QObject
48{
49 Q_OBJECT
50
51public:
52
53 static EditorCore* defaultInstance();
54 static void setDefaultInstance(EditorCore* const instance);
55
56public:
57
58 explicit EditorCore();
59 ~EditorCore() override;
60
61 void load(const QString& filename, IOFileSettings* const iofileSettings);
62 void applyTransform(const IccTransform& transform);
63 void setSoftProofingEnabled(bool enabled);
64 bool softProofingEnabled() const;
65
66 void setICCSettings(const ICCSettingsContainer& cmSettings);
67 ICCSettingsContainer getICCSettings() const;
68
69 void setExposureSettings(ExposureSettingsContainer* const expoSettings);
70 ExposureSettingsContainer* getExposureSettings() const;
71
72 void setExifOrient(bool exifOrient);
73 void setDisplayingWidget(QWidget* const widget);
74
75 void undo();
76 void redo();
77 void restore();
78 void rollbackToOrigin();
79
80 void saveAs(const QString& file, IOFileSettings* const iofileSettings,
81 bool setExifOrientationTag, const QString& givenMimeType,
82 const QString& intendedFilePath);
83
84 void saveAs(const QString& file, IOFileSettings* const iofileSettings,
85 bool setExifOrientationTag, const QString& givenMimeType,
86 const VersionFileOperation& operation);
87
88 void setHistoryIsBranch(bool isBranching);
89 void setLastSaved(const QString& filePath);
90 void switchToLastSaved(const DImageHistory& resolvedCurrentHistory = DImageHistory());
91 void abortSaving();
92 void setModified();
93 void readMetadataFromFile(const QString& file);
94 void clearUndoManager();
95 void setUndoManagerOrigin();
96 void resetImage();
97
98 QString ensureHasCurrentUuid() const;
99 void provideCurrentUuid(const QString& uuid);
100
101 void zoom(double val);
102
106 DImg getImgSelection() const;
107 DImg* getImg() const;
108 bool isValid() const;
109 bool isReadOnly() const;
110 bool hasAlpha() const;
111 bool sixteenBit() const;
112 bool exifRotated() const;
113 int width() const;
114 int height() const;
115 int origWidth() const;
116 int origHeight() const;
117 int bytesDepth() const;
118
119 QSize loadedSize() const;
120
124 void rotate90();
125 void rotate180();
126 void rotate270();
127 void flipHoriz();
128 void flipVert();
129 void convertDepth(int depth);
130 void crop(const QRect& rect);
131
132 void setSelectedArea(const QRect& rect);
133 QRect getSelectedArea() const;
134
135 void putIccProfile(const IccProfile& profile);
136 void putImgSelection(const QString& caller, const FilterAction& action, const DImg& img);
137 void putImg(const QString& caller, const FilterAction& action, const DImg& img);
138
142 void setUndoImg(const UndoMetadataContainer& c, const DImg& img);
143
144 void imageUndoChanged(const UndoMetadataContainer& c);
145 void setFileOriginData(const QVariant& data);
146
151 QPixmap convertToPixmap(const DImg& img) const;
152
153 QString getImageFileName() const;
154 QString getImageFilePath() const;
155 QString getImageFormat() const;
156 QStringList getUndoHistory() const;
157 QStringList getRedoHistory() const;
158 UndoState undoState() const;
159 int availableUndoSteps() const;
160 int availableRedoSteps() const;
161 IccProfile getEmbeddedICC() const;
162 MetaEngineData getMetadata() const;
163 DImageHistory getItemHistory() const;
164 DImageHistory getInitialImageHistory() const;
165 DImageHistory getImageHistoryOfFullRedo() const;
166 DImageHistory getResolvedInitialHistory() const;
167 void setResolvedInitialHistory(const DImageHistory& history);
168
169protected Q_SLOTS:
170
171 void slotImageLoaded(const LoadingDescription& loadingDescription, const DImg& img);
172 void slotImageSaved(const QString& filePath, bool success);
173 void slotLoadingProgress(const LoadingDescription& loadingDescription, float progress);
174 void slotSavingProgress(const QString& filePath, float progress);
175
176Q_SIGNALS:
177
180 void signalFileOriginChanged(const QString& filePath);
181
182 void signalLoadingStarted(const QString& filename);
183 void signalLoadingProgress(const QString& filePath, float progress);
184 void signalImageLoaded(const QString& filePath, bool success);
185 void signalSavingStarted(const QString& filename);
186 void signalSavingProgress(const QString& filePath, float progress);
187 void signalImageSaved(const QString& filePath, bool success);
188
189private Q_SLOTS:
190
191 void slotLoadRawFromTool(const Digikam::LoadingDescription&, const Digikam::DImg&);
192 void slotLoadRaw(const Digikam::LoadingDescription&);
193
194private:
195
196 // Disable
197 EditorCore(QObject*);
198
199private:
200
201 static EditorCore* m_defaultInstance;
202
203 class Private;
204 Private* const d = nullptr;
205};
206
207} // namespace Digikam
Definition dimagehistory.h:39
Definition dimg.h:52
Definition editorcore_p.h:50
Definition editorcore.h:48
void signalImageSaved(const QString &filePath, bool success)
void signalImageLoaded(const QString &filePath, bool success)
void signalSavingStarted(const QString &filename)
void signalFileOriginChanged(const QString &filePath)
void signalUndoStateChanged()
void signalLoadingProgress(const QString &filePath, float progress)
void signalSavingProgress(const QString &filePath, float progress)
void signalLoadingStarted(const QString &filename)
Definition exposurecontainer.h:29
Definition filteraction.h:33
Definition iccsettingscontainer.h:35
Definition iofilesettings.h:26
Definition iccprofile.h:33
Definition icctransform.h:39
Definition loadingdescription.h:35
Definition metaengine_data.h:31
Definition undoaction.h:32
Definition undostate.h:21
Definition versionfileoperation.h:60
Definition datefolderview.cpp:34