46 static constexpr qreal shrinkEpsilon = 0.00001;
48 KisSegmentGradientSlider(QWidget *parent =
nullptr,
const char* name =
nullptr, Qt::WindowFlags f = Qt::WindowFlags());
52 QSize sizeHint()
const override;
53 QSize minimumSizeHint()
const override;
57 void chooseSelectedStopColor();
58 void selectPreviousHandle();
59 void selectNextHandle();
60 void moveHandle(Handle handle, qreal
distance,
bool useShrinkEpsilon =
true);
61 void moveHandleLeft(Handle handle, qreal
distance,
bool useShrinkEpsilon =
true);
62 void moveHandleRight(Handle handle, qreal
distance,
bool useShrinkEpsilon =
true);
63 void moveSelectedHandle(qreal
distance,
bool useShrinkEpsilon =
true);
64 void moveSelectedHandleLeft(qreal
distance,
bool useShrinkEpsilon =
true);
65 void moveSelectedHandleRight(qreal
distance,
bool useShrinkEpsilon =
true);
66 void deleteHandle(Handle handle);
67 void centerSelectedHandle();
68 void deleteSelectedHandle();
69 void collapseSelectedSegment();
70 void splitSelectedSegment();
71 void duplicateSelectedSegment();
72 void mirrorSelectedSegment();
74 void distributeStopsEvenly();
81 void paintEvent(QPaintEvent *)
override;
82 void mousePressEvent(QMouseEvent * e)
override;
83 void mouseReleaseEvent(QMouseEvent * e)
override;
84 void mouseMoveEvent(QMouseEvent * e)
override;
85 void mouseDoubleClickEvent(QMouseEvent *e)
override;
86 void wheelEvent(QWheelEvent *e)
override;
87 void keyPressEvent(QKeyEvent *e)
override;
88 void leaveEvent(QEvent *e)
override;
91 void updateHandleSize();
99 qreal leftEndPointOffset {0.0};
100 qreal rightEndPointOffset {0.0};
103 int leftInterpolationType {0};
104 int rightInterpolationType {0};
105 int leftColorInterpolationType {0};
106 int rightColorInterpolationType {0};
107 qreal leftMiddleOffset {0.0};
108 qreal rightMiddleOffset {0.0};
112 static constexpr int removeStopDistance{32};
114 Handle m_selectedHandle {HandleType_None, 0};
115 Handle m_hoveredHandle {HandleType_None, 0};
116 QMenu* m_segmentMenu {
nullptr};
119 qreal m_relativeDragOffset {0.0};
120 QAction *m_removeSegmentAction {
nullptr};
125 QRect sliderRect()
const;
126 QRect gradientStripeRect()
const;
127 QRect handlesStripeRect()
const;
128 int minimalHeight()
const;
129 void handleIncrementInput(
int direction, Qt::KeyboardModifiers modifiers);
130 bool deleteHandleImpl(
Handle handle);