QGIS API Documentation 4.1.0-Master (3b8ef1f72a3)
Loading...
Searching...
No Matches
qgssymbollayerwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssymbollayerwidget.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 QGSSYMBOLLAYERWIDGET_H
18#define QGSSYMBOLLAYERWIDGET_H
19
20#include "qgis_sip.h"
22#include "qgssymbollayer.h"
24#include "qobjectuniqueptr.h"
25
26#include <QStandardItemModel>
27#include <QWidget>
28
29class QgsVectorLayer;
30class QgsMarkerSymbol;
31class QgsLineSymbol;
32
33template<class T> class GUI_EXPORT QgsMapToolEditBlankSegments;
34
40class GUI_EXPORT QgsSymbolLayerWidget : public QWidget, public QgsExpressionContextGenerator
41{
42 Q_OBJECT
43
44 public:
50 QgsSymbolLayerWidget( QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *vl = nullptr )
51 : QWidget( parent )
52 , mVectorLayer( vl )
53 {}
54
55 virtual void setSymbolLayer( QgsSymbolLayer *layer ) = 0;
57
63 virtual void setContext( const QgsSymbolWidgetContext &context );
64
70
74 QgsVectorLayer *vectorLayer() const { return mVectorLayer; }
75
76 protected:
82 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
83
85
86 private:
87 QPointer<QgsVectorLayer> mVectorLayer;
88
89 signals:
90
95 void changed();
96
104
105 protected slots:
107
108 private slots:
109 void createAuxiliaryField();
110
111 private:
112 QgsSymbolWidgetContext mContext;
113};
114
116
117#include "ui_widget_simpleline.h"
118
120
126class GUI_EXPORT QgsSimpleLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleLine
127{
128 Q_OBJECT
129
130 public:
136 QgsSimpleLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
137
139
145
146 void setSymbolLayer( QgsSymbolLayer *layer ) override;
147 QgsSymbolLayer *symbolLayer() override;
148 void setContext( const QgsSymbolWidgetContext &context ) override;
149
150 protected:
152
153 //creates a new icon for the 'change pattern' button
154 void updatePatternIcon();
155
156 void resizeEvent( QResizeEvent *event ) override;
157
158 private slots:
159
160 void updateAssistantSymbol();
161 void penWidthChanged();
162 void colorChanged( const QColor &color );
163 void penStyleChanged();
164 void offsetChanged();
165 void patternOffsetChanged();
166 void mCustomCheckBox_stateChanged( int state );
167 void mChangePatternButton_clicked();
168 void mPenWidthUnitWidget_changed();
169 void mOffsetUnitWidget_changed();
170 void mDashPatternUnitWidget_changed();
171 void mDrawInsideCheckBox_stateChanged( int state );
172 void patternOffsetUnitChanged();
173
174 private:
175 std::shared_ptr<QgsLineSymbol> mAssistantPreviewSymbol;
176};
177
179
180#include "ui_widget_simplemarker.h"
181
183
189class GUI_EXPORT QgsSimpleMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleMarker
190{
191 Q_OBJECT
192
193 public:
199 QgsSimpleMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
201
207
208 // from base class
209 void setSymbolLayer( QgsSymbolLayer *layer ) override;
210 QgsSymbolLayer *symbolLayer() override;
211
212 public slots:
213
214 void setColorStroke( const QColor &color );
215 void setColorFill( const QColor &color );
216
217 protected:
219
220 private slots:
221 void setSize();
222 void setAngle();
223 void setOffset();
224 void mSizeUnitWidget_changed();
225 void mOffsetUnitWidget_changed();
226 void mStrokeWidthUnitWidget_changed();
227 void mStrokeStyleComboBox_currentIndexChanged( int index );
228 void mStrokeWidthSpinBox_valueChanged( double d );
229 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
230 void mVerticalAnchorComboBox_currentIndexChanged( int index );
231 void setShape();
232 void updateAssistantSymbol();
233 void penJoinStyleChanged();
234 void penCapStyleChanged();
235
236 private:
237 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
238};
239
241
242#include "ui_widget_simplefill.h"
243
245
251class GUI_EXPORT QgsSimpleFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleFill
252{
253 Q_OBJECT
254
255 public:
261 QgsSimpleFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
262
268
269 // from base class
270 void setSymbolLayer( QgsSymbolLayer *layer ) override;
271 QgsSymbolLayer *symbolLayer() override;
272
273 public slots:
274 void setColor( const QColor &color );
275 void setStrokeColor( const QColor &color );
276
277 protected:
279
280 private slots:
281 void setBrushStyle();
282 void strokeWidthChanged();
283 void strokeStyleChanged();
284 void offsetChanged();
285 void mStrokeWidthUnitWidget_changed();
286 void mOffsetUnitWidget_changed();
287};
288
289
291
292#include "ui_widget_filledmarker.h"
293
295
301class GUI_EXPORT QgsFilledMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledMarker
302{
303 Q_OBJECT
304
305 public:
311 QgsFilledMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
313
319
320 // from base class
321 void setSymbolLayer( QgsSymbolLayer *layer ) override;
322 QgsSymbolLayer *symbolLayer() override;
323
324 protected:
326
327 private slots:
328
329 void updateAssistantSymbol();
330 void setShape();
331 void setSize();
332 void setAngle();
333 void setOffset();
334 void mSizeUnitWidget_changed();
335 void mOffsetUnitWidget_changed();
336 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
337 void mVerticalAnchorComboBox_currentIndexChanged( int index );
338
339 private:
340 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
341};
342
344
345#include "ui_widget_gradientfill.h"
346
348
354class GUI_EXPORT QgsGradientFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientFill
355{
356 Q_OBJECT
357
358 public:
364 QgsGradientFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
365
371
372 // from base class
373 void setSymbolLayer( QgsSymbolLayer *layer ) override;
374 QgsSymbolLayer *symbolLayer() override;
375
376 public slots:
377 void setColor( const QColor &color );
378 void setColor2( const QColor &color );
379
383 void applyColorRamp();
384 void setGradientType( int index );
385 void setCoordinateMode( int index );
386 void setGradientSpread( int index );
387
388 protected:
390
391 private slots:
392 void offsetChanged();
393 void referencePointChanged();
394 void mOffsetUnitWidget_changed();
395 void colorModeChanged();
396 void mSpinAngle_valueChanged( double value );
397};
398
400
401#include "ui_widget_shapeburstfill.h"
402
404
410class GUI_EXPORT QgsShapeburstFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetShapeburstFill
411{
412 Q_OBJECT
413
414 public:
421
427
428 // from base class
429 void setSymbolLayer( QgsSymbolLayer *layer ) override;
430 QgsSymbolLayer *symbolLayer() override;
431
432 public slots:
433 void setColor( const QColor &color );
434 void setColor2( const QColor &color );
435
436 protected:
438
439 private slots:
440 void colorModeChanged();
441 void mSpinBlurRadius_valueChanged( int value );
442 void mSpinMaxDistance_valueChanged( double value );
443 void mDistanceUnitWidget_changed();
444 void mRadioUseWholeShape_toggled( bool value );
445 void applyColorRamp();
446 void offsetChanged();
447 void mOffsetUnitWidget_changed();
448 void mIgnoreRingsCheckBox_stateChanged( int state );
449};
450
452
453#include "ui_widget_templatedline.h"
454
457
464class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
465{
466 Q_OBJECT
467
468 public:
473 {
474 Hash,
475 Marker
476 };
477
484 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
485
486 bool event( QEvent *e ) override;
487
488 void setSymbolLayer( QgsSymbolLayer *layer ) override;
489 QgsSymbolLayer *symbolLayer() override;
490 void setContext( const QgsSymbolWidgetContext &context ) override;
491
492 public slots:
493
498 void setInterval( double val );
499
504 void setOffsetAlongLine( double val );
505
506 private slots:
507
508 void setHashLength( double val );
509 void setHashAngle( double val );
510
511 void setRotate();
512 void setOffset();
513 void setPlacement();
514 void mIntervalUnitWidget_changed();
515 void mOffsetUnitWidget_changed();
516 void mOffsetAlongLineUnitWidget_changed();
517 void hashLengthUnitWidgetChanged();
518 void averageAngleUnitChanged();
519 void blankSegmentsUnitChanged();
520 void setAverageAngle( double val );
521 void toggleMapToolEditBlankSegments( bool toggled );
522
523 void updateBlankSegmentsWidget();
524
525 private:
526 // Returns blank segments field index, -1 if no dd property field has been set
527 int blankSegmentsFieldIndex() const;
528
529 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
530 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
532};
533
540{
541 Q_OBJECT
542
543 public:
549 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
550
556};
557
565{
566 Q_OBJECT
567
568 public:
574 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
575
581};
582
584
585#include "ui_widget_svgmarker.h"
586
588
594class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
595{
596 Q_OBJECT
597
598 public:
604 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
606
612
613 // from base class
614 void setSymbolLayer( QgsSymbolLayer *layer ) override;
615 QgsSymbolLayer *symbolLayer() override;
616
617 void setContext( const QgsSymbolWidgetContext &context ) override;
618
619 public slots:
621 void setSvgPath( const QString &name );
623 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
624
625
626 protected:
627 // TODO QGIS 5: remove
628
633 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
634
641 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
642
644
645 private slots:
646 void svgSourceChanged( const QString &text );
647 void mChangeColorButton_colorChanged( const QColor &color );
648 void mChangeStrokeColorButton_colorChanged( const QColor &color );
649 void mStrokeWidthSpinBox_valueChanged( double d );
650 void mSizeUnitWidget_changed();
651 void mStrokeWidthUnitWidget_changed();
652 void mOffsetUnitWidget_changed();
653 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
654 void mVerticalAnchorComboBox_currentIndexChanged( int index );
655 void setWidth();
656 void setHeight();
657 void lockAspectRatioChanged( bool locked );
658 void setAngle();
659 void setOffset();
660 void updateAssistantSymbol();
661
662 private:
663 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
664};
665
667
668#include "ui_widget_rastermarker.h"
669
671
678class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
679{
680 Q_OBJECT
681
682 public:
688 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
689
695
696 // from base class
697 void setSymbolLayer( QgsSymbolLayer *layer ) override;
698 QgsSymbolLayer *symbolLayer() override;
699 void setContext( const QgsSymbolWidgetContext &context ) override;
700
701 protected:
703
704 private slots:
705 void imageSourceChanged( const QString &text );
706 void mSizeUnitWidget_changed();
707 void mOffsetUnitWidget_changed();
708 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
709 void mVerticalAnchorComboBox_currentIndexChanged( int index );
710 void setWidth();
711 void setHeight();
712 void setLockAspectRatio( bool locked );
713 void setAngle();
714 void setOffset();
715 void setOpacity( double value );
716 void updatePreviewImage();
717};
718
719
721
722#include "ui_widget_animatedmarker.h"
723
725
732class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
733{
734 Q_OBJECT
735
736 public:
743
749
750 // from base class
751 void setSymbolLayer( QgsSymbolLayer *layer ) override;
752 QgsSymbolLayer *symbolLayer() override;
753 void setContext( const QgsSymbolWidgetContext &context ) override;
754
755 protected:
757
758 private slots:
759 void imageSourceChanged( const QString &text );
760 void mSizeUnitWidget_changed();
761 void mOffsetUnitWidget_changed();
762 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
763 void mVerticalAnchorComboBox_currentIndexChanged( int index );
764 void setWidth();
765 void setHeight();
766 void setLockAspectRatio( bool locked );
767 void setAngle();
768 void setOffset();
769 void setOpacity( double value );
770 void updatePreviewImage();
771
772 private:
773 QMovie *mPreviewMovie = nullptr;
774};
775
776
778
779#include "ui_widget_rasterfill.h"
780
782
788class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
789{
790 Q_OBJECT
791
792 public:
798 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
799
805
806 // from base class
807 void setSymbolLayer( QgsSymbolLayer *layer ) override;
808 QgsSymbolLayer *symbolLayer() override;
809
810 protected:
812
813 private slots:
814 void imageSourceChanged( const QString &text );
815 void setCoordinateMode( int index );
816 void opacityChanged( double value );
817 void offsetChanged();
818 void mOffsetUnitWidget_changed();
819 void mRotationSpinBox_valueChanged( double d );
820
821 private:
822 void updatePreviewImage();
823};
824
825
827
828#include "ui_widget_rasterline.h"
829
831
838class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
839{
840 Q_OBJECT
841
842 public:
848 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
849
855
856 // from base class
857 void setSymbolLayer( QgsSymbolLayer *layer ) override;
858 QgsSymbolLayer *symbolLayer() override;
859
860 protected:
862
863 private slots:
864 void imageSourceChanged( const QString &text );
865 void updatePreviewImage();
866};
867
868
870
871#include "ui_widget_gradientline.h"
872
874
881class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
882{
883 Q_OBJECT
884
885 public:
891 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
892
898
899 // from base class
900 void setSymbolLayer( QgsSymbolLayer *layer ) override;
901 QgsSymbolLayer *symbolLayer() override;
902
903 protected:
905};
906
907
909
910#include "ui_widget_filledline.h"
911
913
920class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
921{
922 Q_OBJECT
923
924 public:
930 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
931
933
939
940 void setSymbolLayer( QgsSymbolLayer *layer ) override;
941 QgsSymbolLayer *symbolLayer() override;
942
943 private:
944 QgsFilledLineSymbolLayer *mLayer = nullptr;
945};
946
947
949
950#include "ui_widget_svgfill.h"
951
953
959class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
960{
961 Q_OBJECT
962
963 public:
969 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
970
976
977 // from base class
978 void setSymbolLayer( QgsSymbolLayer *layer ) override;
979 QgsSymbolLayer *symbolLayer() override;
980 void setContext( const QgsSymbolWidgetContext &context ) override;
981
982 protected:
984
991 void updateParamGui( bool resetValues = true );
992
993 private slots:
994 void mTextureWidthSpinBox_valueChanged( double d );
995 void svgSourceChanged( const QString &text );
996 void setFile( const QString &name );
997 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
998 void mRotationSpinBox_valueChanged( double d );
999 void mChangeColorButton_colorChanged( const QColor &color );
1000 void mChangeStrokeColorButton_colorChanged( const QColor &color );
1001 void mStrokeWidthSpinBox_valueChanged( double d );
1002 void mTextureWidthUnitWidget_changed();
1003 void mSvgStrokeWidthUnitWidget_changed();
1004};
1005
1007
1008#include "ui_widget_linepatternfill.h"
1009
1011
1017class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1018{
1019 Q_OBJECT
1020
1021 public:
1028
1034
1035 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1036 QgsSymbolLayer *symbolLayer() override;
1037
1038 protected:
1040
1041 private slots:
1042 void mAngleSpinBox_valueChanged( double d );
1043 void mDistanceSpinBox_valueChanged( double d );
1044 void mOffsetSpinBox_valueChanged( double d );
1045 void mDistanceUnitWidget_changed();
1046 void mOffsetUnitWidget_changed();
1047};
1048
1050
1051#include "ui_widget_pointpatternfill.h"
1052
1054
1060class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1061{
1062 Q_OBJECT
1063
1064 public:
1071
1077
1078 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1079 QgsSymbolLayer *symbolLayer() override;
1080
1081 protected:
1083
1084 private slots:
1085 void mHorizontalDistanceSpinBox_valueChanged( double d );
1086 void mVerticalDistanceSpinBox_valueChanged( double d );
1087 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1088 void mVerticalDisplacementSpinBox_valueChanged( double d );
1089 void mHorizontalOffsetSpinBox_valueChanged( double d );
1090 void mVerticalOffsetSpinBox_valueChanged( double d );
1091 void mHorizontalDistanceUnitWidget_changed();
1092 void mVerticalDistanceUnitWidget_changed();
1093 void mHorizontalDisplacementUnitWidget_changed();
1094 void mVerticalDisplacementUnitWidget_changed();
1095 void mHorizontalOffsetUnitWidget_changed();
1096 void mVerticalOffsetUnitWidget_changed();
1097};
1098
1099
1101
1102#include "ui_widget_randommarkerfill.h"
1103
1105
1113class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1114{
1115 Q_OBJECT
1116
1117 public:
1124
1130
1131 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1132 QgsSymbolLayer *symbolLayer() override;
1133
1134 private:
1135 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1136
1137 private slots:
1138
1139 void countMethodChanged( int );
1140 void countChanged( int d );
1141 void densityAreaChanged( double d );
1142 void densityAreaUnitChanged();
1143 void seedChanged( int d );
1144};
1145
1147
1148#include "ui_widget_fontmarker.h"
1149
1151class CharacterWidget;
1152
1158class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1159{
1160 Q_OBJECT
1161
1162 public:
1168 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1170
1176
1177 // from base class
1178 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1179 QgsSymbolLayer *symbolLayer() override;
1180
1181 public slots:
1182 void setFontFamily( const QFont &font );
1183 void setColor( const QColor &color );
1184
1188 void setColorStroke( const QColor &color );
1189 void setSize( double size );
1190 void setAngle( double angle );
1191
1196 void setCharacter( QChar chr );
1197
1203 void setCharacterFromText( const QString &text );
1204
1205 protected:
1208
1209 private slots:
1210
1215 void setFontStyle( const QString &style );
1216
1217 void setOffset();
1218 void mSizeUnitWidget_changed();
1219 void mOffsetUnitWidget_changed();
1220 void mStrokeWidthUnitWidget_changed();
1221 void mStrokeWidthSpinBox_valueChanged( double d );
1222
1223 void populateFontStyleComboBox();
1224 void mFontStyleComboBox_currentIndexChanged( int index );
1225
1226 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1227 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1228 void penJoinStyleChanged();
1229 void updateAssistantSymbol();
1230
1231 private:
1232 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1233
1234 QFont mRefFont;
1235 QFontDatabase mFontDB;
1236};
1237
1239
1240
1241#include "ui_widget_centroidfill.h"
1242
1244
1250class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1251{
1252 Q_OBJECT
1253
1254 public:
1260 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1261
1267
1268 // from base class
1269 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1270 QgsSymbolLayer *symbolLayer() override;
1271
1272 protected:
1274
1275 private slots:
1276 void mDrawInsideCheckBox_stateChanged( int state );
1277 void mDrawAllPartsCheckBox_stateChanged( int state );
1278 void mClipPointsCheckBox_stateChanged( int state );
1279 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1280};
1281
1282
1284
1285#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1286
1288
1295class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1296{
1297 Q_OBJECT
1298
1299 public:
1304
1306
1312
1313 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1314 QgsSymbolLayer *symbolLayer() override;
1315 void setContext( const QgsSymbolWidgetContext &context ) override;
1316
1317 private slots:
1318 void changeNumberFormat();
1319
1320 private:
1321 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1322 bool mBlockChangesSignal = false;
1323};
1324
1325
1326#include "ui_qgsgeometrygeneratorwidgetbase.h"
1327#include "qgis_gui.h"
1328
1330
1336class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1337{
1338 Q_OBJECT
1339
1340 public:
1347
1352
1353 // from base class
1354 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1355 QgsSymbolLayer *symbolLayer() override;
1356
1357 private:
1358 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1359 int mBlockSignals = 0;
1360
1361 private slots:
1362 void updateExpression( const QString &string );
1363 void updateSymbolType();
1364};
1365
1366#endif
A widget for displaying characters available in a preset font, and allowing users to select an indivi...
Keeps a pointer to a QObject and deletes it whenever this object is deleted.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsAnimatedMarkerSymbolLayerWidget.
QgsAnimatedMarkerSymbolLayer * mLayer
QgsAnimatedMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsAnimatedMarkerSymbolLayerWidget.
Animated marker symbol layer class.
QgsCentroidFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsCentroidFillSymbolLayerWidget.
QgsCentroidFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsCentroidFillSymbolLayerWidget.
A fill symbol layer which renders a marker symbol at the centroid of a polygon geometry.
Abstract interface for generating an expression context.
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
~QgsFilledLineSymbolLayerWidget() override
QgsFilledLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFilledLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledLineSymbolLayerWidget.
A line symbol layer type which fills a stroked line with a QgsFillSymbol.
QgsFilledMarkerSymbolLayer * mLayer
QgsFilledMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFilledMarkerSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledMarkerSymbolLayerWidget.
Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol.
QgsFontMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFontMarkerSymbolLayerWidget.
~QgsFontMarkerSymbolLayerWidget() override
QgsFontMarkerSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFontMarkerSymbolLayerWidget.
A marker symbol layer which displays characters rendered using a font.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Will be registered as factory.
QgsGeometryGeneratorSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsGeometryGeneratorSymbolLayerWidget.
A symbol layer subclass which alters rendered feature shapes through the use of QGIS expressions.
QgsGradientFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsGradientFillSymbolLayerWidget.
QgsGradientFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsGradientFillSymbolLayerWidget.
A fill symbol layer which draws a smooth color gradient over a polygon.
QgsHashedLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsHashedLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsHashedLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinePatternFillSymbolLayerWidget.
QgsLinePatternFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLinePatternFillSymbolLayerWidget.
QgsLinePatternFillSymbolLayer * mLayer
A symbol fill consisting of repeated parallel lines.
A line symbol type, for rendering LineString and MultiLineString geometries.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinearReferencingSymbolLayerWidget.
QgsLinearReferencingSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLinearReferencingSymbolLayerWidget.
Line symbol layer used for decorating according to linear referencing.
QgsLineburstSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLineburstSymbolLayerWidget.
QgsLineburstSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLineburstSymbolLayerWidget.
Line symbol layer type which draws a gradient pattern perpendicularly along a line.
Map tool base class to edit blank segments.
Specializes the map tool to edit blank segments given the targeted symbol layer type (QgsMarkerLineSy...
QgsMarkerLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsMarkerLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsMarkerLineSymbolLayerWidget.
A marker symbol type, for rendering Point and MultiPoint geometries.
QgsPointPatternFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsPointPatternFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsPointPatternFillSymbolLayerWidget.
QgsPointPatternFillSymbolLayer * mLayer
A fill symbol layer which fills polygon shapes with repeating marker symbols.
A button for controlling property overrides which may apply to a widget.
QgsRandomMarkerFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRandomMarkerFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRandomMarkerFillSymbolLayerWidget.
A fill symbol layer which places markers at random locations within polygons.
QgsRasterFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterFillSymbolLayerWidget.
QgsRasterFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated raster image.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterLineSymbolLayerWidget.
QgsRasterLineSymbolLayer * mLayer
QgsRasterLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterLineSymbolLayerWidget.
Line symbol layer type which draws line sections using a raster image file.
QgsRasterMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterMarkerSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterMarkerSymbolLayerWidget.
QgsRasterMarkerSymbolLayer * mLayer
Raster marker symbol layer class.
QgsSVGFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSVGFillSymbolLayerWidget.
void updateParamGui(bool resetValues=true)
Enables or disables svg fill color, stroke color and stroke width based on whether the svg file suppo...
QgsSVGFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSVGFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated SVG file.
QgsShapeburstFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsShapeburstFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsShapeburstFillSymbolLayerWidget.
QgsShapeburstFillSymbolLayer * mLayer
A fill symbol layer which applies a gradient from the outer edges of a symbol to the inside.
QgsSimpleFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleFillSymbolLayerWidget.
QgsSimpleFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleFillSymbolLayerWidget.
Renders polygons using a single fill and stroke color.
~QgsSimpleLineSymbolLayerWidget() override
QgsSimpleLineSymbolLayer * mLayer
QgsSimpleLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleLineSymbolLayerWidget.
void resizeEvent(QResizeEvent *event) override
A simple line symbol layer, which renders lines using a line in a variety of styles (e....
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleMarkerSymbolLayerWidget.
QgsSimpleMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleMarkerSymbolLayerWidget.
QgsSimpleMarkerSymbolLayer * mLayer
Simple marker symbol layer, consisting of a rendered shape with solid fill color and a stroke.
Q_DECL_DEPRECATED void populateList()
This method does nothing anymore, the loading is automatic.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSvgMarkerSymbolLayerWidget.
QgsSvgMarkerSymbolLayer * mLayer
QgsSvgMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSvgMarkerSymbolLayerWidget.
~QgsSvgMarkerSymbolLayerWidget() override
A marker symbol layer which renders an SVG graphic.
Abstract base class for widgets used to configure QgsSymbolLayer classes.
QgsVectorLayer * vectorLayer() const
Returns the vector layer associated with the widget.
QgsSymbolLayerWidget(QWidget *parent, QgsVectorLayer *vl=nullptr)
Constructor for QgsSymbolLayerWidget.
virtual void setSymbolLayer(QgsSymbolLayer *layer)=0
void changed()
Should be emitted whenever configuration changes happened on this symbol layer configuration.
void symbolChanged()
Should be emitted whenever the sub symbol changed on this symbol layer configuration.
virtual void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the symbol widget is shown, e.g., the associated map canvas and expression ...
virtual QgsSymbolLayer * symbolLayer()=0
QgsSymbolWidgetContext context() const
Returns the context in which the symbol widget is shown, e.g., the associated map canvas and expressi...
Abstract base class for symbol layers.
Property
Data definable properties.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
Base class for templated line symbols, e.g.
A widget for controlling the properties of a templated line symbol layer (hash or markers).
QgsTemplatedLineSymbolLayerWidget(TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsTemplatedLineSymbolLayerWidget.
Represents a vector layer which manages a vector based dataset.
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_FACTORY
Definition qgis_sip.h:83