digiKam
Loading...
Searching...
No Matches
curveswidget.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 : 2004-12-01
7 * Description : a widget to draw histogram curves
8 *
9 * SPDX-FileCopyrightText: 2004-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 <QWidget>
20#include <QEvent>
21#include <QMouseEvent>
22#include <QPaintEvent>
23
24// Local includes
25
26#include "dcolor.h"
27#include "digikam_export.h"
28#include "digikam_globals.h"
29
30class KConfigGroup;
31
32namespace Digikam
33{
34
35class ImageCurves;
36class DImg;
37
38class DIGIKAM_EXPORT CurvesWidget : public QWidget
39{
40 Q_OBJECT
41
42public:
43
44 explicit CurvesWidget(int w, int h, QWidget* const parent, bool readOnly=false);
45 ~CurvesWidget() override;
46
47 void setup(int w, int h, bool readOnly);
48
56 void saveCurve(KConfigGroup& group, const QString& prefix);
57
65 void restoreCurve(const KConfigGroup& group, const QString& prefix);
66
72 void updateData(const DImg& img);
73
77 void stopHistogramComputation();
78
79 void setDataLoading();
80 void setLoadingFailed();
81
85 void reset();
86
90 void resetUI();
91 void curveTypeChanged();
92 void setCurveGuide(const DColor& color);
93
94 ImageCurves* curves() const;
95 bool isSixteenBits() const;
96
97Q_SIGNALS:
98
99 void signalMouseMoved(int x, int y);
103
104public Q_SLOTS:
105
106 void setChannelType(ChannelType channel);
107 void setScaleType(HistogramScale scale);
108
109protected Q_SLOTS:
110
111 void slotProgressTimerDone();
112 void slotCalculationStarted();
113 void slotCalculationFinished(bool success);
114
115protected:
116
117 void paintEvent(QPaintEvent*) override;
118 void mousePressEvent(QMouseEvent*) override;
119 void mouseReleaseEvent(QMouseEvent*) override;
120 void mouseMoveEvent(QMouseEvent*) override;
121 void leaveEvent(QEvent*) override;
122
123private:
124
125 class Private;
126 Private* const d = nullptr;
127};
128
129} // namespace Digikam
Definition curveswidget.h:39
void signalHistogramComputationFailed()
void signalMouseMoved(int x, int y)
void signalHistogramComputationDone()
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