digiKam
Loading...
Searching...
No Matches
editortool.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 : 2008-08-20
7 * Description : editor tool template class.
8 *
9 * SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QObject>
20#include <QString>
21#include <QPixmap>
22#include <QPoint>
23
24// Local includes
25
26#include "digikam_export.h"
27#include "dcolor.h"
28#include "previewtoolbar.h"
29#include "filteraction.h"
30#include "dplugineditor.h"
31
32namespace Digikam
33{
34
35class DImgThreadedFilter;
36class DImgThreadedAnalyser;
37class EditorToolSettings;
38
39class DIGIKAM_EXPORT EditorTool : public QObject
40{
41 Q_OBJECT
42
43public:
44
45 explicit EditorTool(QObject* const parent);
46 ~EditorTool() override;
47
48 void setPlugin(DPlugin* const plugin);
49 DPlugin* plugin() const;
50
54 void init();
55
59 void setInitPreview(bool b);
60
61 QString toolHelp() const;
62 QString toolName() const;
63 int toolVersion() const;
64 QIcon toolIcon() const;
65 QWidget* toolView() const;
66 EditorToolSettings* toolSettings() const;
67 FilterAction::Category toolCategory() const;
68
69 virtual void setBackgroundColor(const QColor& bg);
70 virtual void ICCSettingsChanged();
71 virtual void exposureSettingsChanged();
72
73public Q_SLOTS:
74
75 void slotUpdateSpotInfo(const Digikam::DColor& col, const QPoint& point);
76 void slotPreviewModeChanged();
77
78 virtual void slotCloseTool();
79 virtual void slotApplyTool();
80
81Q_SIGNALS:
82
83 void okClicked();
85
86protected:
87
88 void setToolInfoMessage(const QString& txt);
89 void setToolHelp(const QString& anchor);
90 void setToolName(const QString& name);
91 void setToolVersion(const int version);
92 void setToolIcon(const QIcon& icon);
93 void setPreviewModeMask(int mask);
94 void setToolCategory(const FilterAction::Category category);
95
96 virtual void setToolView(QWidget* const view);
97 virtual void setToolSettings(EditorToolSettings* const settings);
98 virtual void setBusy(bool);
99 virtual void readSettings();
100 virtual void writeSettings();
101 virtual void finalRendering() {};
102
103protected Q_SLOTS:
104
105 void slotTimer();
106
107 virtual void slotOk();
108 virtual void slotCancel();
109 virtual void slotInit();
110 virtual void slotResetSettings();
111 virtual void slotLoadSettings() {};
112 virtual void slotSaveAsSettings() {};
113 virtual void slotPreview() {};
114 virtual void slotChannelChanged() {};
115 virtual void slotScaleChanged() {};
116
117private:
118
119 class Private;
120 Private* const d = nullptr;
121};
122
123// -----------------------------------------------------------------
124
125class DIGIKAM_EXPORT EditorToolThreaded : public EditorTool
126{
127 Q_OBJECT
128
129public:
130
132 {
133 NoneRendering = 0,
135 FinalRendering
136 };
137
138public:
139
140 explicit EditorToolThreaded(QObject* const parent);
141 ~EditorToolThreaded() override;
142
147 void setProgressMessage(const QString& mess);
148
152 RenderingMode renderingMode() const;
153
154public Q_SLOTS:
155
156 virtual void slotAbort();
157
158protected:
159
163 DImgThreadedFilter* filter() const;
164 void setFilter(DImgThreadedFilter* const filter);
165
169 DImgThreadedAnalyser* analyser() const;
170 void setAnalyser(DImgThreadedAnalyser* const analyser);
171
176 void deleteFilterInstance(bool b = true);
177
178 virtual void preparePreview() {};
179 virtual void prepareFinal() {};
180 virtual void setPreviewImage() {};
181 virtual void setFinalImage() {};
182 virtual void renderingFinished() {};
183 virtual void analyserCompleted() {};
184
185protected Q_SLOTS:
186
190 void slotFilterStarted();
191 void slotFilterFinished(bool success);
192
196 void slotAnalyserStarted();
197 void slotAnalyserFinished(bool success);
198
202 void slotProgress(int progress);
203
204 void slotInit() override;
205 void slotOk() override;
206 void slotCancel() override;
207 void slotPreview() override;
208
209private Q_SLOTS:
210
211 void slotResized();
212
213private:
214
215 class Private;
216 Private* const d = nullptr;
217};
218
219} // namespace Digikam
Definition dcolor.h:33
Definition dimgthreadedanalyser.h:28
Definition dimgthreadedfilter.h:31
Definition dplugin.h:51
Definition editortoolsettings.h:41
Definition editortool.h:126
virtual void renderingFinished()
Definition editortool.h:182
virtual void prepareFinal()
Definition editortool.h:179
virtual void setFinalImage()
Definition editortool.h:181
virtual void analyserCompleted()
Definition editortool.h:183
virtual void preparePreview()
Definition editortool.h:178
virtual void setPreviewImage()
Definition editortool.h:180
RenderingMode
Definition editortool.h:132
@ PreviewRendering
Definition editortool.h:134
Definition editortool.h:40
virtual void slotPreview()
Definition editortool.h:113
virtual void slotChannelChanged()
Definition editortool.h:114
virtual void finalRendering()
Definition editortool.h:101
virtual void slotScaleChanged()
Definition editortool.h:115
virtual void slotLoadSettings()
Definition editortool.h:111
virtual void slotSaveAsSettings()
Definition editortool.h:112
Category
Definition filteraction.h:37
Definition datefolderview.cpp:34