Krita Source Code Documentation
Loading...
Searching...
No Matches
WGShadeSlider.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Mathias Wein <lynx.mw+kde@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
7#ifndef WGSHADESLIDER_H
8#define WGSHADESLIDER_H
9
11
12#include <KisVisualColorModel.h>
13
14#include <QWidget>
15#include <QScopedPointer>
16#include <QVector4D>
17
18class QImage;
19
20class WGShadeSlider : public QWidget
21{
22 Q_OBJECT
23public:
24 explicit WGShadeSlider(WGSelectorDisplayConfigSP config, QWidget *parent = nullptr, KisVisualColorModelSP model = nullptr);
25 ~WGShadeSlider() override;
26
27 void setGradient(const QVector4D &range, const QVector4D &offset);
28 void setDisplayMode(bool slider, int numPatches = -1);
30 QVector4D channelValues() const;
31 const QImage* background();
32
33public Q_SLOTS:
34 void slotSetChannelValues(const QVector4D &values);
35 void resetHandle();
36
37protected Q_SLOTS:
39
40protected:
41 QSize minimumSizeHint() const override;
42 void mousePressEvent(QMouseEvent *event) override;
43 void mouseMoveEvent(QMouseEvent *event) override;
44 void mouseReleaseEvent(QMouseEvent *event) override;
45 //void tabletEvent(QTabletEvent *event) override;
46 void paintEvent(QPaintEvent*) override;
47 void resizeEvent(QResizeEvent *) override;
48
49 bool adjustHandleValue(const QPointF &widgetPos);
51 qreal convertWidgetCoordinateToSliderValue(QPointF coordinate);
52 QVector4D calculateChannelValues(qreal sliderPos) const;
53 int getPatch(const QPointF pos) const;
54 QRectF patchRect(int index) const;
56 bool sizeRequirementsMet() const;
57 QImage renderBackground();
65 void strokeRect(QPainter &painter, const QRectF &rect, qreal pixelSize, qreal shrinkX);
66
67Q_SIGNALS:
68 void sigChannelValuesChanged(const QVector4D &values);
69 void sigInteraction(bool active);
70private:
71 struct Private;
72 const QScopedPointer<Private> m_d;
73};
74
75#endif // WGSHADESLIDER_H
float value(const T *src, size_t ch)
void mousePressEvent(QMouseEvent *event) override
QPointF convertSliderValueToWidgetCoordinate(qreal value)
void sigInteraction(bool active)
WGShadeSlider(WGSelectorDisplayConfigSP config, QWidget *parent=nullptr, KisVisualColorModelSP model=nullptr)
bool adjustHandleValue(const QPointF &widgetPos)
~WGShadeSlider() override
QVector4D calculateChannelValues(qreal sliderPos) const
QVector4D channelValues() const
const QImage * background()
void setModel(KisVisualColorModelSP model)
void resizeEvent(QResizeEvent *) override
void setDisplayMode(bool slider, int numPatches=-1)
QRectF patchRect(int index) const
void slotDisplayConfigurationChanged()
QImage renderBackground()
int getPatch(const QPointF pos) const
void slotSetChannelValues(const QVector4D &values)
void strokeRect(QPainter &painter, const QRectF &rect, qreal pixelSize, qreal shrinkX)
strokeRect
void mouseMoveEvent(QMouseEvent *event) override
void paintEvent(QPaintEvent *) override
qreal convertWidgetCoordinateToSliderValue(QPointF coordinate)
void sigChannelValuesChanged(const QVector4D &values)
void recalculateParameters()
void setGradient(const QVector4D &range, const QVector4D &offset)
QSize minimumSizeHint() const override
bool sizeRequirementsMet() const
const QScopedPointer< Private > m_d
void mouseReleaseEvent(QMouseEvent *event) override