Krita Source Code Documentation
Loading...
Searching...
No Matches
KisClickableGLImageWidget Class Reference

#include <KisClickableGLImageWidget.h>

+ Inheritance diagram for KisClickableGLImageWidget:

Classes

struct  CircularHandleStrategy
 
struct  HandlePaintingStrategy
 
struct  VerticalLineHandleStrategy
 

Signals

void selected (const QPointF &normalizedPos)
 

Public Member Functions

 KisClickableGLImageWidget (const KisSurfaceColorSpaceWrapper &colorSpace, QWidget *parent=nullptr)
 
 KisClickableGLImageWidget (QWidget *parent=nullptr)
 
void mouseMoveEvent (QMouseEvent *event) override
 
void mousePressEvent (QMouseEvent *event) override
 
void mouseReleaseEvent (QMouseEvent *event) override
 
QPointF normalizedPos () const
 
void paintEvent (QPaintEvent *event) override
 
void setHandlePaintingStrategy (HandlePaintingStrategy *strategy)
 
void setNormalizedPos (const QPointF &pos, bool update=true)
 
void setUseHandleOpacity (bool value)
 
 ~KisClickableGLImageWidget ()
 
- Public Member Functions inherited from KisGLImageWidget
void initializeGL () override
 
 KisGLImageWidget (const KisSurfaceColorSpaceWrapper &colorSpace, QWidget *parent=nullptr)
 
 KisGLImageWidget (QWidget *parent=nullptr)
 
void loadImage (const KisGLImageF16 &image)
 
void paintEvent (QPaintEvent *event) override
 
void paintGL () override
 
void resizeEvent (QResizeEvent *event) override
 
QSize sizeHint () const override
 
 ~KisGLImageWidget ()
 

Private Member Functions

QPointF normalizePoint (const QPointF &pos) const
 

Private Attributes

QScopedPointer< HandlePaintingStrategym_handleStrategy
 
QPointF m_normalizedClickPoint
 
bool m_useHandleOpacity = true
 

Detailed Description

Definition at line 14 of file KisClickableGLImageWidget.h.

Constructor & Destructor Documentation

◆ KisClickableGLImageWidget() [1/2]

KisClickableGLImageWidget::KisClickableGLImageWidget ( QWidget * parent = nullptr)

Definition at line 14 of file KisClickableGLImageWidget.cpp.

15 : KisGLImageWidget(parent)
16{
17}
KisGLImageWidget(QWidget *parent=nullptr)

◆ KisClickableGLImageWidget() [2/2]

KisClickableGLImageWidget::KisClickableGLImageWidget ( const KisSurfaceColorSpaceWrapper & colorSpace,
QWidget * parent = nullptr )

Definition at line 19 of file KisClickableGLImageWidget.cpp.

20 : KisGLImageWidget(colorSpace, parent)
21{
22}

◆ ~KisClickableGLImageWidget()

KisClickableGLImageWidget::~KisClickableGLImageWidget ( )

Definition at line 24 of file KisClickableGLImageWidget.cpp.

25{
26}

Member Function Documentation

◆ mouseMoveEvent()

void KisClickableGLImageWidget::mouseMoveEvent ( QMouseEvent * event)
override

Definition at line 92 of file KisClickableGLImageWidget.cpp.

93{
94 KisGLImageWidget::mouseMoveEvent(event);
95
96 if (!event->isAccepted()) {
97 event->accept();
98 m_normalizedClickPoint = normalizePoint(event->localPos());
100
101 if (m_handleStrategy) {
102 update();
103 }
104 }
105}
QPointF normalizePoint(const QPointF &pos) const
QScopedPointer< HandlePaintingStrategy > m_handleStrategy
void selected(const QPointF &normalizedPos)
bool update(QSpinBox *spinBox)

References m_handleStrategy, m_normalizedClickPoint, normalizePoint(), and selected().

◆ mousePressEvent()

void KisClickableGLImageWidget::mousePressEvent ( QMouseEvent * event)
override

Definition at line 62 of file KisClickableGLImageWidget.cpp.

63{
64 KisGLImageWidget::mousePressEvent(event);
65
66 if (!event->isAccepted()) {
67 event->accept();
68 m_normalizedClickPoint = normalizePoint(event->localPos());
70
71 if (m_handleStrategy) {
72 update();
73 }
74 }
75}

References m_handleStrategy, m_normalizedClickPoint, normalizePoint(), and selected().

◆ mouseReleaseEvent()

void KisClickableGLImageWidget::mouseReleaseEvent ( QMouseEvent * event)
override

Definition at line 77 of file KisClickableGLImageWidget.cpp.

78{
79 KisGLImageWidget::mouseReleaseEvent(event);
80
81 if (!event->isAccepted()) {
82 event->accept();
83 m_normalizedClickPoint = normalizePoint(event->localPos());
85
86 if (m_handleStrategy) {
87 update();
88 }
89 }
90}

References m_handleStrategy, m_normalizedClickPoint, normalizePoint(), and selected().

◆ normalizedPos()

QPointF KisClickableGLImageWidget::normalizedPos ( ) const

Definition at line 39 of file KisClickableGLImageWidget.cpp.

40{
42}

References m_normalizedClickPoint.

◆ normalizePoint()

QPointF KisClickableGLImageWidget::normalizePoint ( const QPointF & pos) const
private

Definition at line 107 of file KisClickableGLImageWidget.cpp.

108{
109 const QPointF croppedPoint = KisAlgebra2D::clampPoint(pos, rect());
110 return QPointF(croppedPoint.x() / width(), croppedPoint.y() / height());
111}
Point clampPoint(Point pt, const Rect &bounds)

References KisAlgebra2D::clampPoint().

◆ paintEvent()

void KisClickableGLImageWidget::paintEvent ( QPaintEvent * event)
override

Definition at line 52 of file KisClickableGLImageWidget.cpp.

53{
55
56 if (m_handleStrategy) {
57 QPainter p(this);
59 }
60}
const Params2D p
void paintEvent(QPaintEvent *event) override

References m_handleStrategy, m_normalizedClickPoint, m_useHandleOpacity, p, and KisGLImageWidget::paintEvent().

◆ selected

void KisClickableGLImageWidget::selected ( const QPointF & normalizedPos)
signal

◆ setHandlePaintingStrategy()

void KisClickableGLImageWidget::setHandlePaintingStrategy ( HandlePaintingStrategy * strategy)

Definition at line 28 of file KisClickableGLImageWidget.cpp.

29{
30 m_handleStrategy.reset(strategy);
31}

References m_handleStrategy.

◆ setNormalizedPos()

void KisClickableGLImageWidget::setNormalizedPos ( const QPointF & pos,
bool update = true )

Definition at line 44 of file KisClickableGLImageWidget.cpp.

45{
46 m_normalizedClickPoint = KisAlgebra2D::clampPoint(pos, QRectF(0,0,1.0,1.0));
47 if (update) {
48 this->update();
49 }
50}

References KisAlgebra2D::clampPoint(), and m_normalizedClickPoint.

◆ setUseHandleOpacity()

void KisClickableGLImageWidget::setUseHandleOpacity ( bool value)

Definition at line 33 of file KisClickableGLImageWidget.cpp.

34{
36 update();
37}
float value(const T *src, size_t ch)

References m_useHandleOpacity, and value().

Member Data Documentation

◆ m_handleStrategy

QScopedPointer<HandlePaintingStrategy> KisClickableGLImageWidget::m_handleStrategy
private

Definition at line 57 of file KisClickableGLImageWidget.h.

◆ m_normalizedClickPoint

QPointF KisClickableGLImageWidget::m_normalizedClickPoint
private

Definition at line 56 of file KisClickableGLImageWidget.h.

◆ m_useHandleOpacity

bool KisClickableGLImageWidget::m_useHandleOpacity = true
private

Definition at line 58 of file KisClickableGLImageWidget.h.


The documentation for this class was generated from the following files: