digiKam
Loading...
Searching...
No Matches
curvesbox.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 : 2009-06-14
7 * Description : a curves widget with additional control elements
8 *
9 * SPDX-FileCopyrightText: 2009-2010 by Andi Clemens <andi dot clemens at gmail dot com>
10 * SPDX-FileCopyrightText: 2010-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 <QWidget>
21
22// Local includes
23
24#include "digikam_export.h"
25#include "digikam_globals.h"
26
27class KConfigGroup;
28
29namespace Digikam
30{
31
32class ImageCurves;
33class DColor;
34class DImg;
35
36class DIGIKAM_EXPORT CurvesBox : public QWidget
37{
38 Q_OBJECT
39
40public:
41
43 {
44 NoPicker = -1,
45 BlackTonal = 0,
47 WhiteTonal
48 };
49
51 {
52 SmoothDrawing = 0,
53 FreeDrawing
54 };
55
56public:
57
58 CurvesBox(int w, int h, // Widget size.
59 QWidget* const parent = nullptr, // Parent widget instance.
60 bool readOnly=false); // If true : widget with full edition mode capabilities.
61 // If false : display curve data only without edition.
62
63 CurvesBox(int w, int h, // Widget size.
64 const DImg& img, // Image data.
65 QWidget* const parent = nullptr, // Parent widget instance.
66 bool readOnly=false); // If true : widget with full edition mode capabilities.
67 // If false : display curve data only without edition.
68 ~CurvesBox() override;
69
70 void enablePickers(bool enable);
71 void enableHGradient(bool enable);
72 void enableVGradient(bool enable);
73 void enableGradients(bool enable);
74 void enableResetButton(bool enable);
75 void enableCurveTypes(bool enable);
76 void enableControlWidgets(bool enable);
77
78 void setCurveGuide(const DColor& color);
79
80 void resetPickers();
81 void resetChannel(int channel);
82 void resetChannels();
83 void reset();
84
85 void readCurveSettings(KConfigGroup& group, const QString& prefix);
86 void writeCurveSettings(KConfigGroup& group, const QString& prefix);
87
88 int picker() const;
89 ChannelType channel() const;
90 int curvesLeftOffset() const;
91 ImageCurves* curves() const;
92
93Q_SIGNALS:
94
99
100public Q_SLOTS:
101
102 void setChannel(ChannelType channel);
103 void setScale(HistogramScale scale);
104
105private Q_SLOTS:
106
107 void slotCurveTypeChanged(int type);
108 void slotResetChannel();
109 void slotResetChannels();
110
111private:
112
113 void setup();
114
115private:
116
117 class Private;
118 Private* const d = nullptr;
119};
120
121} // namespace Digikam
Definition curvesbox.h:37
void signalPickerChanged(int)
void signalCurvesChanged()
ColorPicker
Definition curvesbox.h:43
@ GrayTonal
Definition curvesbox.h:46
void signalChannelReset(int)
void signalCurveTypeChanged(int)
CurvesDrawingType
Definition curvesbox.h:51
Definition dcolor.h:33
Definition dimg.h:52
Definition imagecurves.h:35
QStringView prefix
Definition itemviewutilities.cpp:586
Definition datefolderview.cpp:34
ChannelType
Definition digikam_globals.h:146
HistogramScale
Definition digikam_globals.h:132