Krita Source Code Documentation
Loading...
Searching...
No Matches
KisStopGradientSlider.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2004 Cyrille Berger <cberger@cberger.net>
3 * SPDX-FileCopyrightText: 2016 Sven Langkamp <sven.langkamp@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef _KIS_STOP_GRADIENT_SLIDER_H_
9#define _KIS_STOP_GRADIENT_SLIDER_H_
10
11#include <QWidget>
12
13#include <KoStopGradient.h>
15
16class QEvent;
17class QMouseEvent;
18class QKeyEvent;
19
20class KisStopGradientSlider : public QWidget
21{
22 Q_OBJECT
23
24public:
25 KisStopGradientSlider(QWidget *parent = 0, Qt::WindowFlags f = Qt::WindowFlags());
26
27 int selectedStop();
28
29 QSize sizeHint() const override;
30 QSize minimumSizeHint() const override;
31
32public Q_SLOTS:
34 void setSelectedStop(int selected);
35 void selectPreviousStop();
36 void selectNextStop();
37 void deleteSelectedStop(bool selectNeighborStop = true);
39
40Q_SIGNALS:
41 void sigSelectedStop(int stop);
43
44protected:
45 void paintEvent(QPaintEvent *) override;
46 void mousePressEvent(QMouseEvent *e) override;
47 void mouseReleaseEvent(QMouseEvent *e) override;
48 void mouseMoveEvent(QMouseEvent *e) override;
49 void mouseDoubleClickEvent(QMouseEvent *e) override;
50 void wheelEvent(QWheelEvent *e) override;
51 void keyPressEvent(QKeyEvent *e) override;
52 void leaveEvent(QEvent *e) override;
53
54private Q_SLOTS:
55 void updateHandleSize();
56
57private:
58 void insertStop(double t);
59
60 QRect sliderRect() const;
61 QRect gradientStripeRect() const;
62 QRect handlesStripeRect() const;
63 QRegion allowedClickRegion(int tolerance) const;
64
65 void updateHoveredStop(const QPoint &pos);
66 int handleClickTolerance() const;
67 void handleIncrementInput(int direction, Qt::KeyboardModifiers modifiers);
68 int minimalHeight() const;
69
70private:
71 static constexpr int removeStopDistance{32};
72
78 bool m_drag;
81};
82
83#endif
void wheelEvent(QWheelEvent *e) override
void paintEvent(QPaintEvent *) override
void sigSelectedStop(int stop)
void mouseMoveEvent(QMouseEvent *e) override
KisSignalCompressor m_updateCompressor
void setGradientResource(KoStopGradientSP gradient)
void updateHoveredStop(const QPoint &pos)
void leaveEvent(QEvent *e) override
QSize sizeHint() const override
KisStopGradientSlider(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
QRegion allowedClickRegion(int tolerance) const
void mouseReleaseEvent(QMouseEvent *e) override
void mouseDoubleClickEvent(QMouseEvent *e) override
KoStopGradientSP m_defaultGradient
static constexpr int removeStopDistance
void deleteSelectedStop(bool selectNeighborStop=true)
void setSelectedStop(int selected)
QSize minimumSizeHint() const override
void keyPressEvent(QKeyEvent *e) override
void mousePressEvent(QMouseEvent *e) override
void handleIncrementInput(int direction, Qt::KeyboardModifiers modifiers)