QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgssymbollayerv2widget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssymbollayerv2widget.h - symbol layer widgets
3 
4  ---------------------
5  begin : November 2009
6  copyright : (C) 2009 by Martin Dobias
7  email : wonder dot sk at gmail dot com
8  ***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef QGSSYMBOLLAYERV2WIDGET_H
18 #define QGSSYMBOLLAYERV2WIDGET_H
19 
20 #include <QWidget>
21 
22 class QgsSymbolLayerV2;
23 class QgsVectorLayer;
24 
25 
26 class GUI_EXPORT QgsSymbolLayerV2Widget : public QWidget
27 {
28  Q_OBJECT
29 
30  public:
31  QgsSymbolLayerV2Widget( QWidget* parent, const QgsVectorLayer* vl = 0 ) : QWidget( parent ), mVectorLayer( vl ) {}
33 
34  virtual void setSymbolLayer( QgsSymbolLayerV2* layer ) = 0;
35  virtual QgsSymbolLayerV2* symbolLayer() = 0;
36 
37  protected:
43  virtual QString dataDefinedPropertyLabel( const QString &entryName );
44 
45  signals:
46  void changed();
47 };
48 
50 
51 #include "ui_widget_simpleline.h"
52 
54 
55 class GUI_EXPORT QgsSimpleLineSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetSimpleLine
56 {
57  Q_OBJECT
58 
59  public:
60  QgsSimpleLineSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
61 
63 
64  // from base class
65  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
66  virtual QgsSymbolLayerV2* symbolLayer();
67 
68  public slots:
69  void penWidthChanged();
70  void colorChanged( const QColor& color );
71  void penStyleChanged();
72  void offsetChanged();
73  void on_mCustomCheckBox_stateChanged( int state );
74  void on_mChangePatternButton_clicked();
75  void on_mPenWidthUnitWidget_changed( );
76  void on_mOffsetUnitWidget_changed( );
77  void on_mDashPatternUnitWidget_changed( );
78  void on_mDataDefinedPropertiesButton_clicked();
79  void on_mDrawInsideCheckBox_stateChanged( int state );
80 
81  protected:
83 
84  //creates a new icon for the 'change pattern' button
85  void updatePatternIcon();
86 };
87 
89 
90 #include "ui_widget_simplemarker.h"
91 
93 
94 class GUI_EXPORT QgsSimpleMarkerSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetSimpleMarker
95 {
96  Q_OBJECT
97 
98  public:
99  QgsSimpleMarkerSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
100 
102 
103  // from base class
104  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
105  virtual QgsSymbolLayerV2* symbolLayer();
106 
107  public slots:
108  void setName();
109  void setColorBorder( const QColor& color );
110  void setColorFill( const QColor& color );
111  void setSize();
112  void setAngle();
113  void setOffset();
114  void on_mSizeUnitWidget_changed( );
115  void on_mOffsetUnitWidget_changed( );
116  void on_mOutlineWidthUnitWidget_changed( );
117  void on_mDataDefinedPropertiesButton_clicked();
118  void on_mOutlineStyleComboBox_currentIndexChanged( int index );
119  void on_mOutlineWidthSpinBox_valueChanged( double d );
120  void on_mHorizontalAnchorComboBox_currentIndexChanged( int index );
121  void on_mVerticalAnchorComboBox_currentIndexChanged( int index );
122 
123  protected:
125 };
126 
128 
129 #include "ui_widget_simplefill.h"
130 
132 
133 class GUI_EXPORT QgsSimpleFillSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetSimpleFill
134 {
135  Q_OBJECT
136 
137  public:
138  QgsSimpleFillSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
139 
141 
142  // from base class
143  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
144  virtual QgsSymbolLayerV2* symbolLayer();
145 
146  public slots:
147  void setColor( const QColor& color );
148  void setBorderColor( const QColor& color );
149  void setBrushStyle();
150  void borderWidthChanged();
151  void borderStyleChanged();
152  void offsetChanged();
153  void on_mBorderWidthUnitWidget_changed( );
154  void on_mOffsetUnitWidget_changed( );
155  void on_mDataDefinedPropertiesButton_clicked();
156 
157  protected:
159 };
160 
161 
163 
164 #include "ui_widget_gradientfill.h"
165 
167 
168 class GUI_EXPORT QgsGradientFillSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetGradientFill
169 {
170  Q_OBJECT
171 
172  public:
173  QgsGradientFillSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
174 
176 
177  // from base class
178  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
179  virtual QgsSymbolLayerV2* symbolLayer();
180 
181  public slots:
182  void setColor( const QColor& color );
183  void setColor2( const QColor& color );
184  void applyColorRamp();
185  void setGradientType( int index );
186  void setCoordinateMode( int index );
187  void setGradientSpread( int index );
188  void offsetChanged();
189  void referencePointChanged();
190  void on_mOffsetUnitWidget_changed( );
191  void on_mDataDefinedPropertiesButton_clicked();
192  void colorModeChanged();
193  void on_mSpinAngle_valueChanged( double value );
194 
195  protected:
197 };
198 
200 
201 #include "ui_widget_shapeburstfill.h"
202 
204 
205 class GUI_EXPORT QgsShapeburstFillSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetShapeburstFill
206 {
207  Q_OBJECT
208 
209  public:
210  QgsShapeburstFillSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
211 
213 
214  // from base class
215  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
216  virtual QgsSymbolLayerV2* symbolLayer();
217 
218  public slots:
219  void setColor( const QColor& color );
220  void setColor2( const QColor& color );
221  void colorModeChanged();
222  void on_mSpinBlurRadius_valueChanged( int value );
223  void on_mSpinMaxDistance_valueChanged( double value );
224  void on_mDistanceUnitWidget_changed( );
225  void on_mRadioUseWholeShape_toggled( bool value );
226  void applyColorRamp();
227  void offsetChanged();
228  void on_mOffsetUnitWidget_changed( );
229  void on_mDataDefinedPropertiesButton_clicked();
230  void on_mIgnoreRingsCheckBox_stateChanged( int state );
231 
232  protected:
234 };
235 
237 
238 #include "ui_widget_markerline.h"
239 
241 
242 class GUI_EXPORT QgsMarkerLineSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetMarkerLine
243 {
244  Q_OBJECT
245 
246  public:
247  QgsMarkerLineSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
248 
250 
251  // from base class
252  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
253  virtual QgsSymbolLayerV2* symbolLayer();
254 
255  public slots:
256 
257  void setInterval( double val );
258  void setOffsetAlongLine( double val );
259  void setRotate();
260  void setOffset();
261  void setPlacement();
262  void on_mIntervalUnitWidget_changed( );
263  void on_mOffsetUnitWidget_changed( );
264  void on_mOffsetAlongLineUnitWidget_changed( );
265  void on_mDataDefinedPropertiesButton_clicked();
266 
267  protected:
268 
270 };
271 
272 
274 
275 #include "ui_widget_svgmarker.h"
276 
278 
279 class GUI_EXPORT QgsSvgMarkerSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetSvgMarker
280 {
281  Q_OBJECT
282 
283  public:
284  QgsSvgMarkerSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
285 
287 
288  // from base class
289  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
290  virtual QgsSymbolLayerV2* symbolLayer();
291 
292  public slots:
293  void setName( const QModelIndex& idx );
294  void populateIcons( const QModelIndex& idx );
295  void setSize();
296  void setAngle();
297  void setOffset();
298  void on_mFileToolButton_clicked();
299  void on_mFileLineEdit_textEdited( const QString& text );
300  void on_mFileLineEdit_editingFinished();
301  void on_mChangeColorButton_colorChanged( const QColor& color );
302  void on_mChangeBorderColorButton_colorChanged( const QColor& color );
303  void on_mBorderWidthSpinBox_valueChanged( double d );
304  void on_mSizeUnitWidget_changed( );
305  void on_mBorderWidthUnitWidget_changed( );
306  void on_mOffsetUnitWidget_changed( );
307  void on_mDataDefinedPropertiesButton_clicked();
308  void on_mHorizontalAnchorComboBox_currentIndexChanged( int index );
309  void on_mVerticalAnchorComboBox_currentIndexChanged( int index );
310 
311 
312  protected:
313 
314  void populateList();
315  //update gui for svg file (insert new path, update activation of gui elements for svg params)
316  void setGuiForSvg( const QgsSvgMarkerSymbolLayerV2* layer );
317 
319 };
320 
321 
323 
324 #include "ui_widget_svgfill.h"
325 
327 
328 class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerV2Widget, private Ui::WidgetSVGFill
329 {
330  Q_OBJECT
331 
332  public:
333  QgsSVGFillSymbolLayerWidget( const QgsVectorLayer* vl, QWidget* parent = NULL );
334 
335  static QgsSymbolLayerV2Widget* create( const QgsVectorLayer* vl ) { return new QgsSVGFillSymbolLayerWidget( vl ); }
336 
337  // from base class
338  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
339  virtual QgsSymbolLayerV2* symbolLayer();
340 
341  protected:
343  void insertIcons();
349  void updateParamGui( bool resetValues = true );
350 
351  private slots:
352  void on_mBrowseToolButton_clicked();
353  void on_mTextureWidthSpinBox_valueChanged( double d );
354  void on_mSVGLineEdit_textEdited( const QString & text );
355  void on_mSVGLineEdit_editingFinished();
356  void setFile( const QModelIndex& item );
357  void populateIcons( const QModelIndex& item );
358  void on_mRotationSpinBox_valueChanged( double d );
359  void on_mChangeColorButton_colorChanged( const QColor& color );
360  void on_mChangeBorderColorButton_colorChanged( const QColor& color );
361  void on_mBorderWidthSpinBox_valueChanged( double d );
362  void on_mTextureWidthUnitWidget_changed( );
363  void on_mSvgOutlineWidthUnitWidget_changed( );
364  void on_mDataDefinedPropertiesButton_clicked();
365 };
366 
368 
369 #include "ui_widget_linepatternfill.h"
370 
372 
373 class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerV2Widget, private Ui::WidgetLinePatternFill
374 {
375  Q_OBJECT
376 
377  public:
378 
379  QgsLinePatternFillSymbolLayerWidget( const QgsVectorLayer* vl, QWidget* parent = NULL );
381 
382  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
383  virtual QgsSymbolLayerV2* symbolLayer();
384 
385  protected:
387 
388  private slots:
389  void on_mAngleSpinBox_valueChanged( double d );
390  void on_mDistanceSpinBox_valueChanged( double d );
391  void on_mOffsetSpinBox_valueChanged( double d );
392  void on_mDistanceUnitWidget_changed( );
393  void on_mOffsetUnitWidget_changed( );
394  void on_mDataDefinedPropertiesButton_clicked();
395 };
396 
398 
399 #include "ui_widget_pointpatternfill.h"
400 
402 
403 class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget: public QgsSymbolLayerV2Widget, private Ui::WidgetPointPatternFill
404 {
405  Q_OBJECT
406 
407  public:
408  QgsPointPatternFillSymbolLayerWidget( const QgsVectorLayer* vl, QWidget* parent = NULL );
410 
411  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
412  virtual QgsSymbolLayerV2* symbolLayer();
413 
414  protected:
416 
417  private slots:
418  void on_mHorizontalDistanceSpinBox_valueChanged( double d );
419  void on_mVerticalDistanceSpinBox_valueChanged( double d );
420  void on_mHorizontalDisplacementSpinBox_valueChanged( double d );
421  void on_mVerticalDisplacementSpinBox_valueChanged( double d );
422  void on_mHorizontalDistanceUnitWidget_changed( );
423  void on_mVerticalDistanceUnitWidget_changed( );
424  void on_mHorizontalDisplacementUnitWidget_changed( );
425  void on_mVerticalDisplacementUnitWidget_changed( );
426  void on_mDataDefinedPropertiesButton_clicked();
427 };
428 
430 
431 #include "ui_widget_fontmarker.h"
432 
434 class CharacterWidget;
435 
436 class GUI_EXPORT QgsFontMarkerSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetFontMarker
437 {
438  Q_OBJECT
439 
440  public:
441  QgsFontMarkerSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
442 
444 
445  // from base class
446  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
447  virtual QgsSymbolLayerV2* symbolLayer();
448 
449  public slots:
450  void setFontFamily( const QFont& font );
451  void setColor( const QColor& color );
452  void setSize( double size );
453  void setAngle( double angle );
454  void setCharacter( const QChar& chr );
455  void setOffset();
456  void on_mSizeUnitWidget_changed( );
457  void on_mOffsetUnitWidget_changed( );
458  void on_mHorizontalAnchorComboBox_currentIndexChanged( int index );
459  void on_mVerticalAnchorComboBox_currentIndexChanged( int index );
460 
461  protected:
464 };
465 
467 
468 
469 #include "ui_widget_centroidfill.h"
470 
472 
473 class GUI_EXPORT QgsCentroidFillSymbolLayerV2Widget : public QgsSymbolLayerV2Widget, private Ui::WidgetCentroidFill
474 {
475  Q_OBJECT
476 
477  public:
478  QgsCentroidFillSymbolLayerV2Widget( const QgsVectorLayer* vl, QWidget* parent = NULL );
479 
481 
482  // from base class
483  virtual void setSymbolLayer( QgsSymbolLayerV2* layer );
484  virtual QgsSymbolLayerV2* symbolLayer();
485 
486  public slots:
487  void on_mDrawInsideCheckBox_stateChanged( int state );
488 
489  protected:
491 };
492 
493 
494 #endif
virtual void setSymbolLayer(QgsSymbolLayerV2 *layer)=0
static unsigned index
QgsGradientFillSymbolLayerV2 * mLayer
QgsSimpleLineSymbolLayerV2 * mLayer
QgsLinePatternFillSymbolLayer * mLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
QgsFontMarkerSymbolLayerV2 * mLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
const QgsVectorLayer * mVectorLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
QgsPointPatternFillSymbolLayer * mLayer
QgsMarkerLineSymbolLayerV2 * mLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
double ANALYSIS_EXPORT angle(Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
QgsCentroidFillSymbolLayerV2 * mLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
QgsSimpleMarkerSymbolLayerV2 * mLayer
QgsSymbolLayerV2Widget(QWidget *parent, const QgsVectorLayer *vl=0)
A class for svg fill patterns.
QgsSvgMarkerSymbolLayerV2 * mLayer
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
virtual QgsSymbolLayerV2 * symbolLayer()=0
QgsShapeburstFillSymbolLayerV2 * mLayer
Represents a vector layer which manages a vector based data sets.
double size
Definition: qgssvgcache.cpp:77
static QgsSymbolLayerV2Widget * create(const QgsVectorLayer *vl)
QgsSVGFillSymbolLayer * mLayer
QgsSimpleFillSymbolLayerV2 * mLayer