Krita Source Code Documentation
Loading...
Searching...
No Matches
MyPaintCurveRangeModel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef MYPAINTCURVERANGEMODEL_H
8#define MYPAINTCURVERANGEMODEL_H
9
10#include <QObject>
12#include <lager/extra/qt.hpp>
14
15#include <QObject>
16
18{
19 Q_OBJECT
20public:
22 QString curve;
23 qreal xMin = 0.0;
24 qreal xMax = 1.0;
25 qreal yLimit = 1.0;
26 };
27
28public:
29 MyPaintCurveRangeModel(lager::cursor<QString> curve,
30 lager::cursor<QRectF> curveRange,
31 lager::reader<QString> activeSensorId,
32 lager::reader<int> activeSensorLength,
33 qreal maxYRange, const QString &yValueSuffix);
35
36 lager::cursor<QString> curve() override;
37 lager::reader<QString> xMinLabel() override;
38 lager::reader<QString> xMaxLabel() override;
39 lager::reader<QString> yMinLabel() override;
40 lager::reader<QString> yMaxLabel() override;
41
42 lager::reader<qreal> yMinValue() override;
43 lager::reader<qreal> yMaxValue() override;
44 lager::reader<QString> yValueSuffix() override;
45
46 lager::reader<qreal> xMinValue() override;
47 lager::reader<qreal> xMaxValue() override;
48 lager::reader<QString> xValueSuffix() override;
49
50 qreal maxYRange() const;
51
53
54 static std::tuple<QString, QRectF> reshapeCurve(std::tuple<QString, QRectF> curve);
55
56private:
57 lager::cursor<QString> m_curve;
58 lager::cursor<QRectF> m_curveRange;
59 lager::reader<QString> m_activeSensorId;
60 lager::reader<int> m_activeSensorLength;
61 lager::cursor<NormalizedCurve> m_normalizedCurve;
62 const qreal m_maxYRange {0.0};
63 const QString m_yValueSuffix;
64
65public:
66 LAGER_QT_CURSOR(qreal, yLimit);
67 LAGER_QT_CURSOR(qreal, xMin);
68 LAGER_QT_CURSOR(qreal, xMax);
69 LAGER_QT_READER(DoubleSpinBoxState, xMinState);
70 LAGER_QT_READER(DoubleSpinBoxState, xMaxState);
71};
72
73#endif // MYPAINTCURVERANGEMODEL_H
std::function< KisCurveRangeModelInterface *(lager::cursor< QString >, lager::cursor< QRectF >, lager::reader< QString >, lager::reader< int >)> KisCurveRangeModelFactory
lager::reader< QString > m_activeSensorId
lager::reader< qreal > xMaxValue() override
lager::reader< qreal > yMinValue() override
LAGER_QT_READER(DoubleSpinBoxState, xMinState)
lager::reader< qreal > yMaxValue() override
lager::cursor< QRectF > m_curveRange
lager::reader< QString > yValueSuffix() override
LAGER_QT_CURSOR(qreal, xMin)
lager::reader< QString > yMinLabel() override
LAGER_QT_CURSOR(qreal, yLimit)
lager::reader< QString > yMaxLabel() override
lager::cursor< NormalizedCurve > m_normalizedCurve
qreal maxYRange() const
LAGER_QT_READER(DoubleSpinBoxState, xMaxState)
lager::cursor< QString > curve() override
lager::reader< QString > xMinLabel() override
lager::reader< QString > xValueSuffix() override
static std::tuple< QString, QRectF > reshapeCurve(std::tuple< QString, QRectF > curve)
static KisCurveRangeModelFactory factory(qreal maxYRange, const QString &yValueSuffix)
lager::reader< qreal > xMinValue() override
lager::cursor< QString > m_curve
MyPaintCurveRangeModel(lager::cursor< QString > curve, lager::cursor< QRectF > curveRange, lager::reader< QString > activeSensorId, lager::reader< int > activeSensorLength, qreal maxYRange, const QString &yValueSuffix)
lager::reader< QString > xMaxLabel() override
LAGER_QT_CURSOR(qreal, xMax)
lager::reader< int > m_activeSensorLength