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

#include <KisStopGradientSlider.h>

+ Inheritance diagram for KisStopGradientSlider:

Public Slots

void chooseSelectedStopColor ()
 
void deleteSelectedStop (bool selectNeighborStop=true)
 
void selectNextStop ()
 
void selectPreviousStop ()
 
void setGradientResource (KoStopGradientSP gradient)
 
void setSelectedStop (int selected)
 

Signals

void sigSelectedStop (int stop)
 
void updateRequested ()
 

Public Member Functions

 KisStopGradientSlider (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
 
QSize minimumSizeHint () const override
 
int selectedStop ()
 
QSize sizeHint () const override
 

Protected Member Functions

void keyPressEvent (QKeyEvent *e) override
 
void leaveEvent (QEvent *e) override
 
void mouseDoubleClickEvent (QMouseEvent *e) override
 
void mouseMoveEvent (QMouseEvent *e) override
 
void mousePressEvent (QMouseEvent *e) override
 
void mouseReleaseEvent (QMouseEvent *e) override
 
void paintEvent (QPaintEvent *) override
 
void wheelEvent (QWheelEvent *e) override
 

Private Slots

void updateHandleSize ()
 

Private Member Functions

QRegion allowedClickRegion (int tolerance) const
 
QRect gradientStripeRect () const
 
int handleClickTolerance () const
 
void handleIncrementInput (int direction, Qt::KeyboardModifiers modifiers)
 
QRect handlesStripeRect () const
 
void insertStop (double t)
 
int minimalHeight () const
 
QRect sliderRect () const
 
void updateHoveredStop (const QPoint &pos)
 

Private Attributes

KoStopGradientSP m_defaultGradient
 
bool m_drag
 
KoStopGradientSP m_gradient
 
QSize m_handleSize
 
int m_hoveredStop
 
KoGradientStop m_removedStop
 
int m_selectedStop
 
KisSignalCompressor m_updateCompressor
 

Static Private Attributes

static constexpr int removeStopDistance {32}
 

Detailed Description

Definition at line 20 of file KisStopGradientSlider.h.

Constructor & Destructor Documentation

◆ KisStopGradientSlider()

KisStopGradientSlider::KisStopGradientSlider ( QWidget * parent = 0,
Qt::WindowFlags f = Qt::WindowFlags() )

Definition at line 34 of file KisStopGradientSlider.cpp.

35 : QWidget(parent, f)
37 , m_hoveredStop(-1)
38 , m_drag(0)
40{
41 QLinearGradient defaultGradient;
43
45 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
46 setFocusPolicy(Qt::WheelFocus);
47 setMouseTracking(true);
48
49 connect(this, SIGNAL(updateRequested()), &m_updateCompressor, SLOT(start()));
50 connect(&m_updateCompressor, SIGNAL(timeout()), this, SLOT(update()));
51
52 QWindow *window = this->window()->windowHandle();
53 if (window) {
54 connect(window, SIGNAL(screenChanged(QScreen*)), SLOT(updateHandleSize()));
55 }
57}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisSignalCompressor m_updateCompressor
void setGradientResource(KoStopGradientSP gradient)
KoStopGradientSP m_defaultGradient
static QSharedPointer< KoStopGradient > fromQGradient(const QGradient *gradient)
Creates KoStopGradient from a QGradient.
bool update(QSpinBox *spinBox)
KRITAFLAKE_EXPORT QGradient * defaultGradient(QGradient::Type type, QGradient::Spread spread, const QGradientStops &stops)
creates default gradient

References connect(), KoStopGradient::fromQGradient(), m_defaultGradient, m_updateCompressor, setGradientResource(), updateHandleSize(), and updateRequested().

Member Function Documentation

◆ allowedClickRegion()

QRegion KisStopGradientSlider::allowedClickRegion ( int tolerance) const
private

Definition at line 409 of file KisStopGradientSlider.cpp.

410{
411 Q_UNUSED(tolerance);
412 QRegion result;
413 result += rect();
414 return result;
415}

◆ chooseSelectedStopColor

void KisStopGradientSlider::chooseSelectedStopColor ( )
slot

Definition at line 494 of file KisStopGradientSlider.cpp.

495{
496 QList<KoGradientStop> stops = m_gradient->stops();
497 if (m_selectedStop < 0 || m_selectedStop >= stops.count()) {
498 return;
499 }
500
501 KConfigGroup cfg = KSharedConfig::openConfig()->group("colorselector");
502 bool usePlatformDialog = cfg.readEntry("UsePlatformColorDialog", false);
503 QDialog *colorDialog = nullptr;
504
505 if (!usePlatformDialog) {
507 KisDlgInternalColorSelector *dialog = new KisDlgInternalColorSelector(this, stops[m_selectedStop].color, cfg, i18n("Choose a color"));
508 dialog->setPreviousColor(stops[m_selectedStop].color);
509 auto setColorFn = [dialog, stops, this]() mutable
510 {
511 stops[m_selectedStop].type = COLORSTOP;
512 stops[m_selectedStop].color = dialog->getCurrentColor();
513 m_gradient->setStops(stops);
515 Q_EMIT updateRequested();
516 };
518 connect(dialog, &QDialog::accepted, setColorFn);
519 colorDialog = dialog;
520 } else {
521 QColorDialog *dialog = new QColorDialog(this);
522 dialog->setCurrentColor(stops[m_selectedStop].color.toQColor());
523 auto setColorFn = [dialog, stops, this]() mutable
524 {
525 stops[m_selectedStop].type = COLORSTOP;
526 stops[m_selectedStop].color.fromQColor(dialog->currentColor());
527 m_gradient->setStops(stops);
529 Q_EMIT updateRequested();
530 };
531 connect(dialog, &QColorDialog::currentColorChanged, setColorFn);
532 connect(dialog, &QDialog::accepted, setColorFn);
533 colorDialog = dialog;
534 }
535 // common functionality
536 connect(colorDialog, &QDialog::rejected, [stops, this]()
537 {
538 m_gradient->setStops(stops);
540 Q_EMIT updateRequested();
541 });
542 colorDialog->setAttribute(Qt::WA_DeleteOnClose);
543 colorDialog->show();
544 colorDialog->raise();
545 colorDialog->activateWindow();
546}
@ COLORSTOP
The KisInternalColorSelector class.
void signalForegroundColorChosen(KoColor color)
signalForegroundColorChosen The most important signal. This will sent out when a color has been chose...
void sigSelectedStop(int stop)

References COLORSTOP, connect(), m_gradient, m_selectedStop, KisDlgInternalColorSelector::signalForegroundColorChosen(), sigSelectedStop(), and updateRequested().

◆ deleteSelectedStop

void KisStopGradientSlider::deleteSelectedStop ( bool selectNeighborStop = true)
slot

Definition at line 448 of file KisStopGradientSlider.cpp.

449{
450 if (m_drag || m_selectedStop < 0) {
451 return;
452 }
453
454 QList<KoGradientStop> stops = m_gradient->stops();
455
456 if (stops.size() <= 2) {
457 return;
458 }
459
460 const qreal pos = stops[m_selectedStop].position;
461 stops.removeAt(m_selectedStop);
462 if (selectNeighborStop) {
463 m_selectedStop = findNearestHandle(pos, 2.0, stops);
464 } else {
465 m_selectedStop = -1;
466 }
467 m_gradient->setStops(stops);
469}
int findNearestHandle(qreal t, const qreal tolerance, const QList< KoGradientStop > &stops)

References findNearestHandle(), m_drag, m_gradient, m_selectedStop, and sigSelectedStop().

◆ gradientStripeRect()

QRect KisStopGradientSlider::gradientStripeRect ( ) const
private

Definition at line 397 of file KisStopGradientSlider.cpp.

398{
399 const QRect rc = sliderRect();
400 return rc.adjusted(0, 0, 0, -m_handleSize.height() - 4);
401}

References m_handleSize, and sliderRect().

◆ handleClickTolerance()

int KisStopGradientSlider::handleClickTolerance ( ) const
private

Definition at line 66 of file KisStopGradientSlider.cpp.

67{
68 // the size of the default text!
69 return m_handleSize.width();
70}

References m_handleSize.

◆ handleIncrementInput()

void KisStopGradientSlider::handleIncrementInput ( int direction,
Qt::KeyboardModifiers modifiers )
private

Definition at line 288 of file KisStopGradientSlider.cpp.

289{
290 if (direction == 0) {
291 return;
292 }
293 QList<KoGradientStop> stops = m_gradient->stops();
294 if (modifiers & Qt::ControlModifier) {
295 m_selectedStop += direction < 0 ? -1 : 1;
296 m_selectedStop = qBound(0, m_selectedStop, stops.count() - 1);
297 } else if (m_selectedStop >= 0 && m_selectedStop < stops.count()) {
298 const qreal increment = modifiers & Qt::ShiftModifier ? 0.001 : 0.01;
299 KoGradientStop draggedStop = stops[m_selectedStop];
300 draggedStop.position += direction < 0 ? -increment : increment;
301 draggedStop.position = qBound(0.0, draggedStop.position, 1.0);
302
303 stops.removeAt(m_selectedStop);
304 const int newPos = getNewInsertPosition(draggedStop, stops);
305 stops.insert(newPos, draggedStop);
306 m_selectedStop = newPos;
307 m_gradient->setStops(stops);
308 }
310 Q_EMIT updateRequested();
311}
int getNewInsertPosition(const KoGradientStop &stop, const QList< KoGradientStop > &stops)

References getNewInsertPosition(), m_gradient, m_selectedStop, KoGradientStop::position, sigSelectedStop(), and updateRequested().

◆ handlesStripeRect()

QRect KisStopGradientSlider::handlesStripeRect ( ) const
private

Definition at line 403 of file KisStopGradientSlider.cpp.

404{
405 const QRect rc = sliderRect();
406 return rc.adjusted(0, rc.height() - (m_handleSize.height() + 2), 0, -2);
407}

References m_handleSize, and sliderRect().

◆ insertStop()

void KisStopGradientSlider::insertStop ( double t)
private

Definition at line 369 of file KisStopGradientSlider.cpp.

370{
371 KIS_ASSERT_RECOVER(t >= 0 && t <= 1.0 ) {
372 t = qBound(0.0, t, 1.0);
373 }
374
375 QList<KoGradientStop> stops = m_gradient->stops();
376
377 KoColor color;
378 m_gradient->colorAt(color, t);
379
380 const KoGradientStop stop(t, color, COLORSTOP);
381 const int newPos = getNewInsertPosition(stop, stops);
382
383 stops.insert(newPos, stop);
384 m_gradient->setStops(stops);
385
386 m_selectedStop = newPos;
388}
#define KIS_ASSERT_RECOVER(cond)
Definition kis_assert.h:55

References COLORSTOP, getNewInsertPosition(), KIS_ASSERT_RECOVER, m_gradient, m_selectedStop, and sigSelectedStop().

◆ keyPressEvent()

void KisStopGradientSlider::keyPressEvent ( QKeyEvent * e)
overrideprotected

Definition at line 323 of file KisStopGradientSlider.cpp.

324{
325 switch (e->key()) {
326 case Qt::Key_Left:
327 handleIncrementInput(-1, e->modifiers());
328 break;
329 case Qt::Key_Right:
330 handleIncrementInput(1, e->modifiers());
331 break;
332 case Qt::Key_Return:
333 case Qt::Key_Enter:
335 break;
336 case Qt::Key_Delete:
338 break;
339 default:
340 QWidget::keyPressEvent(e);
341 break;
342 }
343}
void deleteSelectedStop(bool selectNeighborStop=true)
void handleIncrementInput(int direction, Qt::KeyboardModifiers modifiers)

References chooseSelectedStopColor(), deleteSelectedStop(), and handleIncrementInput().

◆ leaveEvent()

void KisStopGradientSlider::leaveEvent ( QEvent * e)
overrideprotected

Definition at line 345 of file KisStopGradientSlider.cpp.

346{
347 m_hoveredStop = -1;
348 Q_EMIT updateRequested();
349 QWidget::leaveEvent(e);
350}

References m_hoveredStop, and updateRequested().

◆ minimalHeight()

int KisStopGradientSlider::minimalHeight ( ) const
private

Definition at line 471 of file KisStopGradientSlider.cpp.

472{
473 QFontMetrics fm(font());
474 const int h = fm.height();
475
476 QStyleOptionToolButton opt;
477 QSize sz = style()->sizeFromContents(QStyle::CT_ToolButton, &opt, QSize(h, h), this);
478
479 return qMax(32, sz.height()) + m_handleSize.height();
480}

References m_handleSize.

◆ minimumSizeHint()

QSize KisStopGradientSlider::minimumSizeHint ( ) const
override

Definition at line 488 of file KisStopGradientSlider.cpp.

489{
490 const int h = minimalHeight();
491 return QSize(h, h);
492}

References minimalHeight().

◆ mouseDoubleClickEvent()

void KisStopGradientSlider::mouseDoubleClickEvent ( QMouseEvent * e)
overrideprotected

Definition at line 272 of file KisStopGradientSlider.cpp.

273{
274 if (e->button() != Qt::LeftButton) {
275 QWidget::mouseDoubleClickEvent(e);
276 return;
277 }
278
279 const QRect handlesRect = this->handlesStripeRect();
280 const qreal t = (qreal(e->x()) - handlesRect.x()) / handlesRect.width();
281 const QList<KoGradientStop> stops = m_gradient->stops();
282
283 if (qAbs(t - stops[m_selectedStop].position) < qreal(handleClickTolerance()) / handlesRect.width()) {
285 }
286}

References chooseSelectedStopColor(), handleClickTolerance(), handlesStripeRect(), m_gradient, and m_selectedStop.

◆ mouseMoveEvent()

void KisStopGradientSlider::mouseMoveEvent ( QMouseEvent * e)
overrideprotected

Definition at line 221 of file KisStopGradientSlider.cpp.

222{
223 int previousHoveredStop = m_hoveredStop;
224 updateHoveredStop(e->pos());
225
226 if (m_drag) {
227 QList<KoGradientStop> stops = m_gradient->stops();
228 const QRect augmentedRect = kisGrowRect(rect(), removeStopDistance);
229
230 if (stops.size() > 2 && !augmentedRect.contains(e->pos()))
231 {
232 if (m_selectedStop >= 0) {
234 stops.removeAt(m_selectedStop);
235 m_selectedStop = -1;
236 }
237 } else {
238 const QRect handlesRect = this->handlesStripeRect();
239 double t = qreal(e->pos().x() - handlesRect.left()) / handlesRect.width();
240 if (m_selectedStop < 0) {
241 if (augmentedRect.contains(e->pos())) {
242 m_removedStop.position = qBound(0.0, t, 1.0);
243 const int newPos = getNewInsertPosition(m_removedStop, stops);
244 stops.insert(newPos, m_removedStop);
245 m_selectedStop = newPos;
246 } else {
247 return;
248 }
249 } else {
250 KoGradientStop draggedStop = stops[m_selectedStop];
251 draggedStop.position = qBound(0.0, t, 1.0);
252
253 stops.removeAt(m_selectedStop);
254 const int newPos = getNewInsertPosition(draggedStop, stops);
255 stops.insert(newPos, draggedStop);
256 m_selectedStop = newPos;
257 }
258 }
259
260 m_gradient->setStops(stops);
262
263 Q_EMIT updateRequested();
264 } else {
265 if (previousHoveredStop != m_hoveredStop) {
266 Q_EMIT updateRequested();
267 }
268 QWidget::mouseMoveEvent(e);
269 }
270}
void updateHoveredStop(const QPoint &pos)
static constexpr int removeStopDistance
T kisGrowRect(const T &rect, U offset)
Definition kis_global.h:186

References getNewInsertPosition(), handlesStripeRect(), kisGrowRect(), m_drag, m_gradient, m_hoveredStop, m_removedStop, m_selectedStop, KoGradientStop::position, removeStopDistance, sigSelectedStop(), updateHoveredStop(), and updateRequested().

◆ mousePressEvent()

void KisStopGradientSlider::mousePressEvent ( QMouseEvent * e)
overrideprotected

Definition at line 164 of file KisStopGradientSlider.cpp.

165{
166 if (!allowedClickRegion(handleClickTolerance()).contains(e->pos())) {
167 QWidget::mousePressEvent(e);
168 return;
169 }
170
171 if (e->buttons() != Qt::LeftButton ) {
172 QWidget::mousePressEvent(e);
173 return;
174 }
175
176 const QRect handlesRect = this->handlesStripeRect();
177 const qreal t = (qreal(e->x()) - handlesRect.x()) / handlesRect.width();
178 const QList<KoGradientStop> stops = m_gradient->stops();
179
180 const int clickedStop = findNearestHandle(t, qreal(handleClickTolerance()) / handlesRect.width(), stops);
181
182 if (clickedStop >= 0) {
183 if (m_selectedStop != clickedStop) {
184 m_selectedStop = clickedStop;
186 }
187 m_drag = true;
188 } else {
189 insertStop(qBound(0.0, t, 1.0));
190 m_drag = true;
191 }
192
193 updateHoveredStop(e->pos());
194 Q_EMIT updateRequested();
195}
QRegion allowedClickRegion(int tolerance) const

References allowedClickRegion(), findNearestHandle(), handleClickTolerance(), handlesStripeRect(), insertStop(), m_drag, m_gradient, m_selectedStop, sigSelectedStop(), updateHoveredStop(), and updateRequested().

◆ mouseReleaseEvent()

void KisStopGradientSlider::mouseReleaseEvent ( QMouseEvent * e)
overrideprotected

Definition at line 197 of file KisStopGradientSlider.cpp.

198{
199 Q_UNUSED(e);
200 m_drag = false;
201 int previousHoveredStop = m_hoveredStop;
202 updateHoveredStop(e->pos());
203 if (previousHoveredStop != m_hoveredStop) {
204 Q_EMIT updateRequested();
205 }
206}

References m_drag, m_hoveredStop, updateHoveredStop(), and updateRequested().

◆ paintEvent()

void KisStopGradientSlider::paintEvent ( QPaintEvent * )
overrideprotected

Definition at line 85 of file KisStopGradientSlider.cpp.

86{
87 QPainter painter(this);
88
89 const QRect previewRect = gradientStripeRect();
90
91 if (m_gradient) {
92 // Gradient
94 // Stops
95 painter.setRenderHint(QPainter::Antialiasing, true);
96 const QRect handlesRect = this->handlesStripeRect();
97 const bool hasFocus = this->hasFocus();
98 const QColor highlightColor = palette().color(QPalette::Highlight);
99 const QList<KoGradientStop> handlePositions = m_gradient->stops();
100 for (int i = 0; i < handlePositions.count(); ++i) {
101 if (i == m_selectedStop) {
102 continue;
103 }
105 if (handlePositions[i].type == FOREGROUNDSTOP) {
107 } else if (handlePositions[i].type == BACKGROUNDSTOP) {
109 } else {
111 }
113 painter,
114 QPointF(handlesRect.left() + handlePositions[i].position * handlesRect.width(), handlesRect.top()),
115 QSizeF(m_handleSize),
116 false, i == m_hoveredStop, hasFocus,
117 highlightColor,
118 { colorType, handlePositions[i].color.toQColor() }
119 );
120 }
121 if (handlePositions.count() > 0 && m_selectedStop >= 0 && m_selectedStop < handlePositions.count()) {
123 if (handlePositions[m_selectedStop].type == FOREGROUNDSTOP) {
125 } else if (handlePositions[m_selectedStop].type == BACKGROUNDSTOP) {
127 } else {
129 }
131 painter,
132 QPointF(handlesRect.left() + handlePositions[m_selectedStop].position * handlesRect.width(), handlesRect.top()),
133 QSizeF(m_handleSize),
134 true, false, hasFocus,
135 highlightColor,
136 { colorType, handlePositions[m_selectedStop].color.toQColor() }
137 );
138 }
139 } else {
140 painter.setPen(palette().color(QPalette::Mid));
141 painter.drawRect(previewRect);
142 }
143}
@ FOREGROUNDSTOP
@ BACKGROUNDSTOP
void paintGradientBox(QPainter &painter, const KoAbstractGradientSP gradient, const QRectF &rect)
void paintStopHandle(QPainter &painter, const QPointF &position, const QSizeF &size, bool isSelected, bool isHovered, bool hasFocus, const QColor &highlightColor, const StopHandleColor &color1, const StopHandleColor &color2)
rgba palette[MAX_PALETTE]
Definition palette.c:35

References KisGradientWidgetsUtils::Background, BACKGROUNDSTOP, KisGradientWidgetsUtils::Custom, KisGradientWidgetsUtils::Foreground, FOREGROUNDSTOP, gradientStripeRect(), handlesStripeRect(), m_gradient, m_handleSize, m_hoveredStop, m_selectedStop, KisGradientWidgetsUtils::paintGradientBox(), KisGradientWidgetsUtils::paintStopHandle(), and palette.

◆ selectedStop()

int KisStopGradientSlider::selectedStop ( )

Definition at line 417 of file KisStopGradientSlider.cpp.

418{
419 return m_selectedStop;
420}

References m_selectedStop.

◆ selectNextStop

void KisStopGradientSlider::selectNextStop ( )
slot

Definition at line 439 of file KisStopGradientSlider.cpp.

440{
441 if (m_selectedStop < 0) {
443 } else if (m_selectedStop < m_gradient->stops().size() - 1) {
445 }
446}
void setSelectedStop(int selected)
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References m_selectedStop, and setSelectedStop().

◆ selectPreviousStop

void KisStopGradientSlider::selectPreviousStop ( )
slot

Definition at line 430 of file KisStopGradientSlider.cpp.

431{
432 if (m_selectedStop < 0) {
434 } else if (m_selectedStop > 0) {
436 }
437}

References m_selectedStop, and setSelectedStop().

◆ setGradientResource

void KisStopGradientSlider::setGradientResource ( KoStopGradientSP gradient)
slot

Definition at line 72 of file KisStopGradientSlider.cpp.

73{
74 m_gradient = gradient ? gradient : m_defaultGradient;
75
76 if (m_gradient) {
78 } else {
79 m_selectedStop = -1;
80 }
82 Q_EMIT updateRequested();
83}

References m_defaultGradient, m_gradient, m_selectedStop, sigSelectedStop(), and updateRequested().

◆ setSelectedStop

void KisStopGradientSlider::setSelectedStop ( int selected)
slot

Definition at line 422 of file KisStopGradientSlider.cpp.

423{
424 m_selectedStop = selected;
426
427 Q_EMIT updateRequested();
428}

References m_selectedStop, sigSelectedStop(), and updateRequested().

◆ sigSelectedStop

void KisStopGradientSlider::sigSelectedStop ( int stop)
signal

◆ sizeHint()

QSize KisStopGradientSlider::sizeHint ( ) const
override

Definition at line 482 of file KisStopGradientSlider.cpp.

483{
484 const int h = minimalHeight();
485 return QSize(2 * h, h);
486}

References minimalHeight().

◆ sliderRect()

QRect KisStopGradientSlider::sliderRect ( ) const
private

Definition at line 390 of file KisStopGradientSlider.cpp.

391{
392 const qreal handleWidthOverTwo = static_cast<qreal>(m_handleSize.width()) / 2.0;
393 const int hMargin = static_cast<int>(std::ceil(handleWidthOverTwo)) + 2;
394 return rect().adjusted(hMargin, 0, -hMargin, 0);
395}

References m_handleSize.

◆ updateHandleSize

void KisStopGradientSlider::updateHandleSize ( )
privateslot

Definition at line 59 of file KisStopGradientSlider.cpp.

60{
61 QFontMetrics fm(font());
62 const int h = qMax(15, static_cast<int>(std::ceil(fm.height() * 0.75)));
63 m_handleSize = QSize(h * 0.75, h);
64}

References m_handleSize.

◆ updateHoveredStop()

void KisStopGradientSlider::updateHoveredStop ( const QPoint & pos)
private

Definition at line 352 of file KisStopGradientSlider.cpp.

353{
354 const bool isInAllowedRegion =
356
357 if (isInAllowedRegion) {
358 const QRect handlesRect = this->handlesStripeRect();
359 const qreal t = (qreal(pos.x()) - handlesRect.x()) / handlesRect.width();
360 const QList<KoGradientStop> stops = m_gradient->stops();
361
362 m_hoveredStop = m_drag ? -1 : findNearestHandle(t, qreal(handleClickTolerance()) / handlesRect.width(), stops);
363
364 } else {
365 m_hoveredStop = -1;
366 }
367}

References allowedClickRegion(), findNearestHandle(), handleClickTolerance(), handlesStripeRect(), m_drag, m_gradient, and m_hoveredStop.

◆ updateRequested

void KisStopGradientSlider::updateRequested ( )
signal

◆ wheelEvent()

void KisStopGradientSlider::wheelEvent ( QWheelEvent * e)
overrideprotected

Definition at line 313 of file KisStopGradientSlider.cpp.

314{
315 if (e->angleDelta().y() != 0) {
316 handleIncrementInput(e->angleDelta().y(), e->modifiers());
317 e->accept();
318 } else {
319 QWidget::wheelEvent(e);
320 }
321}

References handleIncrementInput().

Member Data Documentation

◆ m_defaultGradient

KoStopGradientSP KisStopGradientSlider::m_defaultGradient
private

Definition at line 73 of file KisStopGradientSlider.h.

◆ m_drag

bool KisStopGradientSlider::m_drag
private

Definition at line 78 of file KisStopGradientSlider.h.

◆ m_gradient

KoStopGradientSP KisStopGradientSlider::m_gradient
private

Definition at line 74 of file KisStopGradientSlider.h.

◆ m_handleSize

QSize KisStopGradientSlider::m_handleSize
private

Definition at line 79 of file KisStopGradientSlider.h.

◆ m_hoveredStop

int KisStopGradientSlider::m_hoveredStop
private

Definition at line 76 of file KisStopGradientSlider.h.

◆ m_removedStop

KoGradientStop KisStopGradientSlider::m_removedStop
private

Definition at line 77 of file KisStopGradientSlider.h.

◆ m_selectedStop

int KisStopGradientSlider::m_selectedStop
private

Definition at line 75 of file KisStopGradientSlider.h.

◆ m_updateCompressor

KisSignalCompressor KisStopGradientSlider::m_updateCompressor
private

Definition at line 80 of file KisStopGradientSlider.h.

◆ removeStopDistance

constexpr int KisStopGradientSlider::removeStopDistance {32}
staticconstexprprivate

Definition at line 71 of file KisStopGradientSlider.h.

71{32};

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