QGIS API Documentation 3.41.0-Master (cea29feecf2)
Loading...
Searching...
No Matches
qgsgradientstopeditor.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgradientstopeditor.h
3 -----------------------
4 begin : April 2016
5 copyright : (C) 2016 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSGRADIENTSTOPEDITOR_H
17#define QGSGRADIENTSTOPEDITOR_H
18
19#include "qgscolorrampimpl.h"
20#include "qgis_sip.h"
21#include <QWidget>
22#include "qgis_gui.h"
23
24
32class GUI_EXPORT QgsGradientStopEditor : public QWidget
33{
34 Q_OBJECT
35
36 public:
42 QgsGradientStopEditor( QWidget *parent SIP_TRANSFERTHIS = nullptr, QgsGradientColorRamp *ramp = nullptr );
43
49 void setGradientRamp( const QgsGradientColorRamp &ramp );
50
55 QgsGradientColorRamp gradientRamp() const { return mGradient; }
56
62 void selectStop( int index );
63
68 QgsGradientStop selectedStop() const;
69
70 QSize sizeHint() const override;
71 void paintEvent( QPaintEvent *event ) override;
72
73 public slots:
74
83 void setSelectedStopColor( const QColor &color );
84
92 void setSelectedStopOffset( double offset );
93
99 void setSelectedStopColorSpec( QColor::Spec spec );
100
106 void setSelectedStopDirection( Qgis::AngularDirection direction );
107
115 void setSelectedStopDetails( const QColor &color, double offset );
116
121 void deleteSelectedStop();
122
129 void setColor1( const QColor &color );
130
137 void setColor2( const QColor &color );
138
139 signals:
140
142 void changed();
143
149
150 protected:
151 void mouseMoveEvent( QMouseEvent *event ) override;
152 void mousePressEvent( QMouseEvent *event ) override;
153 void mouseDoubleClickEvent( QMouseEvent *event ) override;
154 void keyPressEvent( QKeyEvent *event ) override;
155
156 //Reimplemented to accept dragged colors
157 void dragEnterEvent( QDragEnterEvent *e ) override;
158
159 //Reimplemented to accept dropped colors
160 void dropEvent( QDropEvent *e ) override;
161
162 private:
167 QPixmap transparentBackground();
168
176 void drawStopMarker( QPainter &painter, QPoint topMiddle, const QColor &color, bool selected = false );
177
179 double pointToRelativePosition( int x ) const;
180
182 int relativePositionToPoint( double position ) const;
183
185 bool selectedStopIsMovable() const;
186
188 int findClosestStop( int x, int threshold = -1 ) const;
189
190 QgsGradientColorRamp mGradient;
191
194
196 int mSelectedStop = 0;
197
199 QPolygonF sOuterTriangle;
200
202 QPolygonF sInnerTriangle;
203};
204
205#endif // QGSGRADIENTSTOPEDITOR_H
AngularDirection
Angular directions.
Definition qgis.h:3228
Gradient color ramp, which smoothly interpolates between two colors and also supports optional extra ...
An interactive editor for previewing a gradient color ramp and modifying the position of color stops ...
QgsGradientColorRamp gradientRamp() const
Returns the current ramp created by the editor.
void changed()
Emitted when the gradient ramp is changed by a user.
void selectedStopChanged(const QgsGradientStop &stop)
Emitted when the current selected stop changes.
Represents a color stop within a QgsGradientColorRamp color ramp.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
QList< QgsGradientStop > QgsGradientStopsList
List of gradient stops.