QGIS API Documentation 3.43.0-Master (32433f7016e)
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
21#include "qgis_sip.h"
23#include "qgssymbollayer.h"
24
25#include <QWidget>
26#include <QStandardItemModel>
27
28class QgsVectorLayer;
29class QgsMarkerSymbol;
30class QgsLineSymbol;
31
37class GUI_EXPORT QgsSymbolLayerWidget : public QWidget, protected QgsExpressionContextGenerator
38{
39 Q_OBJECT
40
41 public:
47 QgsSymbolLayerWidget( QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *vl = nullptr )
48 : QWidget( parent )
49 , mVectorLayer( vl )
50 {}
51
52 virtual void setSymbolLayer( QgsSymbolLayer *layer ) = 0;
54
60 virtual void setContext( const QgsSymbolWidgetContext &context );
61
66 QgsSymbolWidgetContext context() const;
67
71 const QgsVectorLayer *vectorLayer() const { return mVectorLayer; }
72
73 protected:
79 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
80
82
83 private:
84 QgsVectorLayer *mVectorLayer = nullptr;
85
86 signals:
87
92 void changed();
93
101
102 protected slots:
103 void updateDataDefinedProperty();
104
105 private slots:
106 void createAuxiliaryField();
107
108 private:
109 QgsSymbolWidgetContext mContext;
110};
111
113
114#include "ui_widget_simpleline.h"
115
117
123class GUI_EXPORT QgsSimpleLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleLine
124{
125 Q_OBJECT
126
127 public:
133 QgsSimpleLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
134
136
142
143 void setSymbolLayer( QgsSymbolLayer *layer ) override;
144 QgsSymbolLayer *symbolLayer() override;
145 void setContext( const QgsSymbolWidgetContext &context ) override;
146
147 protected:
148 QgsSimpleLineSymbolLayer *mLayer = nullptr;
149
150 //creates a new icon for the 'change pattern' button
151 void updatePatternIcon();
152
153 void resizeEvent( QResizeEvent *event ) override;
154
155 private slots:
156
157 void updateAssistantSymbol();
158 void penWidthChanged();
159 void colorChanged( const QColor &color );
160 void penStyleChanged();
161 void offsetChanged();
162 void patternOffsetChanged();
163 void mCustomCheckBox_stateChanged( int state );
164 void mChangePatternButton_clicked();
165 void mPenWidthUnitWidget_changed();
166 void mOffsetUnitWidget_changed();
167 void mDashPatternUnitWidget_changed();
168 void mDrawInsideCheckBox_stateChanged( int state );
169 void patternOffsetUnitChanged();
170
171 private:
172 std::shared_ptr<QgsLineSymbol> mAssistantPreviewSymbol;
173};
174
176
177#include "ui_widget_simplemarker.h"
178
180
186class GUI_EXPORT QgsSimpleMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleMarker
187{
188 Q_OBJECT
189
190 public:
196 QgsSimpleMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
198
204
205 // from base class
206 void setSymbolLayer( QgsSymbolLayer *layer ) override;
207 QgsSymbolLayer *symbolLayer() override;
208
209 public slots:
210
211 void setColorStroke( const QColor &color );
212 void setColorFill( const QColor &color );
213
214 protected:
215 QgsSimpleMarkerSymbolLayer *mLayer = nullptr;
216
217 private slots:
218 void setSize();
219 void setAngle();
220 void setOffset();
221 void mSizeUnitWidget_changed();
222 void mOffsetUnitWidget_changed();
223 void mStrokeWidthUnitWidget_changed();
224 void mStrokeStyleComboBox_currentIndexChanged( int index );
225 void mStrokeWidthSpinBox_valueChanged( double d );
226 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
227 void mVerticalAnchorComboBox_currentIndexChanged( int index );
228 void setShape();
229 void updateAssistantSymbol();
230 void penJoinStyleChanged();
231 void penCapStyleChanged();
232
233 private:
234 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
235};
236
238
239#include "ui_widget_simplefill.h"
240
242
248class GUI_EXPORT QgsSimpleFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleFill
249{
250 Q_OBJECT
251
252 public:
258 QgsSimpleFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
259
265
266 // from base class
267 void setSymbolLayer( QgsSymbolLayer *layer ) override;
268 QgsSymbolLayer *symbolLayer() override;
269
270 public slots:
271 void setColor( const QColor &color );
272 void setStrokeColor( const QColor &color );
273
274 protected:
275 QgsSimpleFillSymbolLayer *mLayer = nullptr;
276
277 private slots:
278 void setBrushStyle();
279 void strokeWidthChanged();
280 void strokeStyleChanged();
281 void offsetChanged();
282 void mStrokeWidthUnitWidget_changed();
283 void mOffsetUnitWidget_changed();
284};
285
286
288
289#include "ui_widget_filledmarker.h"
290
292
298class GUI_EXPORT QgsFilledMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledMarker
299{
300 Q_OBJECT
301
302 public:
308 QgsFilledMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
310
316
317 // from base class
318 void setSymbolLayer( QgsSymbolLayer *layer ) override;
319 QgsSymbolLayer *symbolLayer() override;
320
321 protected:
322 QgsFilledMarkerSymbolLayer *mLayer = nullptr;
323
324 private slots:
325
326 void updateAssistantSymbol();
327 void setShape();
328 void setSize();
329 void setAngle();
330 void setOffset();
331 void mSizeUnitWidget_changed();
332 void mOffsetUnitWidget_changed();
333 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
334 void mVerticalAnchorComboBox_currentIndexChanged( int index );
335
336 private:
337 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
338};
339
341
342#include "ui_widget_gradientfill.h"
343
345
351class GUI_EXPORT QgsGradientFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientFill
352{
353 Q_OBJECT
354
355 public:
361 QgsGradientFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
362
368
369 // from base class
370 void setSymbolLayer( QgsSymbolLayer *layer ) override;
371 QgsSymbolLayer *symbolLayer() override;
372
373 public slots:
374 void setColor( const QColor &color );
375 void setColor2( const QColor &color );
376
380 void applyColorRamp();
381 void setGradientType( int index );
382 void setCoordinateMode( int index );
383 void setGradientSpread( int index );
384
385 protected:
386 QgsGradientFillSymbolLayer *mLayer = nullptr;
387
388 private slots:
389 void offsetChanged();
390 void referencePointChanged();
391 void mOffsetUnitWidget_changed();
392 void colorModeChanged();
393 void mSpinAngle_valueChanged( double value );
394};
395
397
398#include "ui_widget_shapeburstfill.h"
399
401
407class GUI_EXPORT QgsShapeburstFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetShapeburstFill
408{
409 Q_OBJECT
410
411 public:
418
424
425 // from base class
426 void setSymbolLayer( QgsSymbolLayer *layer ) override;
427 QgsSymbolLayer *symbolLayer() override;
428
429 public slots:
430 void setColor( const QColor &color );
431 void setColor2( const QColor &color );
432
433 protected:
435
436 private slots:
437 void colorModeChanged();
438 void mSpinBlurRadius_valueChanged( int value );
439 void mSpinMaxDistance_valueChanged( double value );
440 void mDistanceUnitWidget_changed();
441 void mRadioUseWholeShape_toggled( bool value );
442 void applyColorRamp();
443 void offsetChanged();
444 void mOffsetUnitWidget_changed();
445 void mIgnoreRingsCheckBox_stateChanged( int state );
446};
447
449
450#include "ui_widget_markerline.h"
451
453
459class GUI_EXPORT QgsMarkerLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetMarkerLine
460{
461 Q_OBJECT
462
463 public:
469 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
470
476
477 // from base class
478 void setSymbolLayer( QgsSymbolLayer *layer ) override;
479 QgsSymbolLayer *symbolLayer() override;
480 void setContext( const QgsSymbolWidgetContext &context ) override;
481
482 public slots:
483
484 void setInterval( double val );
485 void setOffsetAlongLine( double val );
486
487 protected:
488 QgsMarkerLineSymbolLayer *mLayer = nullptr;
489
490 private slots:
491 void setRotate();
492 void setOffset();
493 void setPlacement();
494 void mIntervalUnitWidget_changed();
495 void mOffsetUnitWidget_changed();
496 void mOffsetAlongLineUnitWidget_changed();
497 void averageAngleUnitChanged();
498 void setAverageAngle( double val );
499};
500
501
502#include "ui_widget_hashline.h"
503
505
512class GUI_EXPORT QgsHashedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetHashedLine
513{
514 Q_OBJECT
515
516 public:
522 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
523
529
530 // from base class
531 void setSymbolLayer( QgsSymbolLayer *layer ) override;
532 QgsSymbolLayer *symbolLayer() override;
533 void setContext( const QgsSymbolWidgetContext &context ) override;
534
535 private slots:
536
537 void setInterval( double val );
538 void setOffsetAlongLine( double val );
539 void setHashLength( double val );
540 void setHashAngle( double val );
541
542 void setRotate();
543 void setOffset();
544 void setPlacement();
545 void mIntervalUnitWidget_changed();
546 void mOffsetUnitWidget_changed();
547 void mOffsetAlongLineUnitWidget_changed();
548 void hashLengthUnitWidgetChanged();
549 void averageAngleUnitChanged();
550 void setAverageAngle( double val );
551
552 private:
553 QgsHashedLineSymbolLayer *mLayer = nullptr;
554};
555
557
558#include "ui_widget_svgmarker.h"
559
561
567class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
568{
569 Q_OBJECT
570
571 public:
577 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
579
585
586 // from base class
587 void setSymbolLayer( QgsSymbolLayer *layer ) override;
588 QgsSymbolLayer *symbolLayer() override;
589
590 void setContext( const QgsSymbolWidgetContext &context ) override;
591
592 public slots:
594 void setSvgPath( const QString &name );
596 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
597
598
599 protected:
600 // TODO QGIS 4: remove
601
606 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
607
614 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
615
616 QgsSvgMarkerSymbolLayer *mLayer = nullptr;
617
618 private slots:
619 void svgSourceChanged( const QString &text );
620 void mChangeColorButton_colorChanged( const QColor &color );
621 void mChangeStrokeColorButton_colorChanged( const QColor &color );
622 void mStrokeWidthSpinBox_valueChanged( double d );
623 void mSizeUnitWidget_changed();
624 void mStrokeWidthUnitWidget_changed();
625 void mOffsetUnitWidget_changed();
626 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
627 void mVerticalAnchorComboBox_currentIndexChanged( int index );
628 void setWidth();
629 void setHeight();
630 void lockAspectRatioChanged( bool locked );
631 void setAngle();
632 void setOffset();
633 void updateAssistantSymbol();
634
635 private:
636 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
637};
638
640
641#include "ui_widget_rastermarker.h"
642
644
651class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
652{
653 Q_OBJECT
654
655 public:
661 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
662
668
669 // from base class
670 void setSymbolLayer( QgsSymbolLayer *layer ) override;
671 QgsSymbolLayer *symbolLayer() override;
672 void setContext( const QgsSymbolWidgetContext &context ) override;
673
674 protected:
675 QgsRasterMarkerSymbolLayer *mLayer = nullptr;
676
677 private slots:
678 void imageSourceChanged( const QString &text );
679 void mSizeUnitWidget_changed();
680 void mOffsetUnitWidget_changed();
681 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
682 void mVerticalAnchorComboBox_currentIndexChanged( int index );
683 void setWidth();
684 void setHeight();
685 void setLockAspectRatio( bool locked );
686 void setAngle();
687 void setOffset();
688 void setOpacity( double value );
689 void updatePreviewImage();
690};
691
692
694
695#include "ui_widget_animatedmarker.h"
696
698
705class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
706{
707 Q_OBJECT
708
709 public:
716
722
723 // from base class
724 void setSymbolLayer( QgsSymbolLayer *layer ) override;
725 QgsSymbolLayer *symbolLayer() override;
726 void setContext( const QgsSymbolWidgetContext &context ) override;
727
728 protected:
730
731 private slots:
732 void imageSourceChanged( const QString &text );
733 void mSizeUnitWidget_changed();
734 void mOffsetUnitWidget_changed();
735 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
736 void mVerticalAnchorComboBox_currentIndexChanged( int index );
737 void setWidth();
738 void setHeight();
739 void setLockAspectRatio( bool locked );
740 void setAngle();
741 void setOffset();
742 void setOpacity( double value );
743 void updatePreviewImage();
744
745 private:
746 QMovie *mPreviewMovie = nullptr;
747};
748
749
751
752#include "ui_widget_rasterfill.h"
753
755
761class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
762{
763 Q_OBJECT
764
765 public:
771 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
772
778
779 // from base class
780 void setSymbolLayer( QgsSymbolLayer *layer ) override;
781 QgsSymbolLayer *symbolLayer() override;
782
783 protected:
784 QgsRasterFillSymbolLayer *mLayer = nullptr;
785
786 private slots:
787 void imageSourceChanged( const QString &text );
788 void setCoordinateMode( int index );
789 void opacityChanged( double value );
790 void offsetChanged();
791 void mOffsetUnitWidget_changed();
792 void mRotationSpinBox_valueChanged( double d );
793
794 private:
795 void updatePreviewImage();
796};
797
798
800
801#include "ui_widget_rasterline.h"
802
804
811class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
812{
813 Q_OBJECT
814
815 public:
821 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
822
828
829 // from base class
830 void setSymbolLayer( QgsSymbolLayer *layer ) override;
831 QgsSymbolLayer *symbolLayer() override;
832
833 protected:
834 QgsRasterLineSymbolLayer *mLayer = nullptr;
835
836 private slots:
837 void imageSourceChanged( const QString &text );
838 void updatePreviewImage();
839};
840
841
843
844#include "ui_widget_gradientline.h"
845
847
854class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
855{
856 Q_OBJECT
857
858 public:
864 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
865
871
872 // from base class
873 void setSymbolLayer( QgsSymbolLayer *layer ) override;
874 QgsSymbolLayer *symbolLayer() override;
875
876 protected:
877 QgsLineburstSymbolLayer *mLayer = nullptr;
878};
879
880
882
883#include "ui_widget_filledline.h"
884
886
893class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
894{
895 Q_OBJECT
896
897 public:
903 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
904
906
912
913 void setSymbolLayer( QgsSymbolLayer *layer ) override;
914 QgsSymbolLayer *symbolLayer() override;
915
916 private:
917 QgsFilledLineSymbolLayer *mLayer = nullptr;
918};
919
920
922
923#include "ui_widget_svgfill.h"
924
926
932class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
933{
934 Q_OBJECT
935
936 public:
942 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
943
949
950 // from base class
951 void setSymbolLayer( QgsSymbolLayer *layer ) override;
952 QgsSymbolLayer *symbolLayer() override;
953 void setContext( const QgsSymbolWidgetContext &context ) override;
954
955 protected:
956 QgsSVGFillSymbolLayer *mLayer = nullptr;
957
964 void updateParamGui( bool resetValues = true );
965
966 private slots:
967 void mTextureWidthSpinBox_valueChanged( double d );
968 void svgSourceChanged( const QString &text );
969 void setFile( const QString &name );
970 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
971 void mRotationSpinBox_valueChanged( double d );
972 void mChangeColorButton_colorChanged( const QColor &color );
973 void mChangeStrokeColorButton_colorChanged( const QColor &color );
974 void mStrokeWidthSpinBox_valueChanged( double d );
975 void mTextureWidthUnitWidget_changed();
976 void mSvgStrokeWidthUnitWidget_changed();
977};
978
980
981#include "ui_widget_linepatternfill.h"
982
984
990class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
991{
992 Q_OBJECT
993
994 public:
1001
1007
1008 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1009 QgsSymbolLayer *symbolLayer() override;
1010
1011 protected:
1013
1014 private slots:
1015 void mAngleSpinBox_valueChanged( double d );
1016 void mDistanceSpinBox_valueChanged( double d );
1017 void mOffsetSpinBox_valueChanged( double d );
1018 void mDistanceUnitWidget_changed();
1019 void mOffsetUnitWidget_changed();
1020};
1021
1023
1024#include "ui_widget_pointpatternfill.h"
1025
1027
1033class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1034{
1035 Q_OBJECT
1036
1037 public:
1044
1050
1051 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1052 QgsSymbolLayer *symbolLayer() override;
1053
1054 protected:
1056
1057 private slots:
1058 void mHorizontalDistanceSpinBox_valueChanged( double d );
1059 void mVerticalDistanceSpinBox_valueChanged( double d );
1060 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1061 void mVerticalDisplacementSpinBox_valueChanged( double d );
1062 void mHorizontalOffsetSpinBox_valueChanged( double d );
1063 void mVerticalOffsetSpinBox_valueChanged( double d );
1064 void mHorizontalDistanceUnitWidget_changed();
1065 void mVerticalDistanceUnitWidget_changed();
1066 void mHorizontalDisplacementUnitWidget_changed();
1067 void mVerticalDisplacementUnitWidget_changed();
1068 void mHorizontalOffsetUnitWidget_changed();
1069 void mVerticalOffsetUnitWidget_changed();
1070};
1071
1072
1074
1075#include "ui_widget_randommarkerfill.h"
1076
1078
1086class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1087{
1088 Q_OBJECT
1089
1090 public:
1097
1103
1104 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1105 QgsSymbolLayer *symbolLayer() override;
1106
1107 private:
1108 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1109
1110 private slots:
1111
1112 void countMethodChanged( int );
1113 void countChanged( int d );
1114 void densityAreaChanged( double d );
1115 void densityAreaUnitChanged();
1116 void seedChanged( int d );
1117};
1118
1120
1121#include "ui_widget_fontmarker.h"
1122
1124class CharacterWidget;
1125
1131class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1132{
1133 Q_OBJECT
1134
1135 public:
1141 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1143
1149
1150 // from base class
1151 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1152 QgsSymbolLayer *symbolLayer() override;
1153
1154 public slots:
1155 void setFontFamily( const QFont &font );
1156 void setColor( const QColor &color );
1157
1161 void setColorStroke( const QColor &color );
1162 void setSize( double size );
1163 void setAngle( double angle );
1164
1169 void setCharacter( QChar chr );
1170
1176 void setCharacterFromText( const QString &text );
1177
1178 protected:
1179 QgsFontMarkerSymbolLayer *mLayer = nullptr;
1180 CharacterWidget *widgetChar = nullptr;
1181
1182 private slots:
1183
1188 void setFontStyle( const QString &style );
1189
1190 void setOffset();
1191 void mSizeUnitWidget_changed();
1192 void mOffsetUnitWidget_changed();
1193 void mStrokeWidthUnitWidget_changed();
1194 void mStrokeWidthSpinBox_valueChanged( double d );
1195
1196 void populateFontStyleComboBox();
1197 void mFontStyleComboBox_currentIndexChanged( int index );
1198
1199 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1200 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1201 void penJoinStyleChanged();
1202 void updateAssistantSymbol();
1203
1204 private:
1205 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1206
1207 QFont mRefFont;
1208 QFontDatabase mFontDB;
1209};
1210
1212
1213
1214#include "ui_widget_centroidfill.h"
1215
1217
1223class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1224{
1225 Q_OBJECT
1226
1227 public:
1233 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1234
1240
1241 // from base class
1242 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1243 QgsSymbolLayer *symbolLayer() override;
1244
1245 protected:
1247
1248 private slots:
1249 void mDrawInsideCheckBox_stateChanged( int state );
1250 void mDrawAllPartsCheckBox_stateChanged( int state );
1251 void mClipPointsCheckBox_stateChanged( int state );
1252 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1253};
1254
1255
1257
1258#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1259
1261
1268class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1269{
1270 Q_OBJECT
1271
1272 public:
1277
1279
1285
1286 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1287 QgsSymbolLayer *symbolLayer() override;
1288 void setContext( const QgsSymbolWidgetContext &context ) override;
1289
1290 private slots:
1291 void changeNumberFormat();
1292
1293 private:
1294 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1295 bool mBlockChangesSignal = false;
1296};
1297
1298
1299#include "ui_qgsgeometrygeneratorwidgetbase.h"
1300#include "qgis_gui.h"
1301
1303
1309class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1310{
1311 Q_OBJECT
1312
1313 public:
1320
1325
1326 // from base class
1327 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1328 QgsSymbolLayer *symbolLayer() override;
1329
1330 private:
1331 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1332 int mBlockSignals = 0;
1333
1334 private slots:
1335 void updateExpression( const QString &string );
1336 void updateSymbolType();
1337};
1338
1339#endif
A widget for displaying characters available in a preset font, and allowing users to select an indivi...
A widget for configuring QgsAnimatedMarkerSymbolLayer symbol layers.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsAnimatedMarkerSymbolLayerWidget.
Animated marker symbol layer class.
A widget for controlling the properties of a QgsCentroidFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new 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...
A widget for configuring QgsFilledLineSymbolLayer.
~QgsFilledLineSymbolLayerWidget() override
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledLineSymbolLayerWidget.
A line symbol layer type which fills a stroked line with a QgsFillSymbol.
A widget for configuring QgsFilledMarkerSymbolLayer symbol layers.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledMarkerSymbolLayerWidget.
Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol.
A widget for controlling the properties of a QgsFontMarkerSymbolLayer.
~QgsFontMarkerSymbolLayerWidget() override
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFontMarkerSymbolLayerWidget.
A marker symbol layer which displays characters rendered using a font.
A widget for controlling the properties of a QgsGeometryGeneratorSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Will be registered as factory.
A symbol layer subclass which alters rendered feature shapes through the use of QGIS expressions.
A widget for controlling the properties of a QgsGradientFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsGradientFillSymbolLayerWidget.
A fill symbol layer which draws a smooth color gradient over a polygon.
A widget for controlling the properties of a QgsHashedLineSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsHashedLineSymbolLayerWidget.
Line symbol layer type which draws repeating line sections along a line feature.
A widget for controlling the properties of a QgsLinePatternFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinePatternFillSymbolLayerWidget.
A symbol fill consisting of repeated parallel lines.
A line symbol type, for rendering LineString and MultiLineString geometries.
A widget for controlling the properties of a QgsLinearReferencingSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinearReferencingSymbolLayerWidget.
Line symbol layer used for decorating according to linear referencing.
A widget for configuring QgsLineburstSymbolLayer symbol layers.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLineburstSymbolLayerWidget.
Line symbol layer type which draws a gradient pattern perpendicularly along a line.
A widget for controlling the properties of a QgsMarkerLineSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsMarkerLineSymbolLayerWidget.
Line symbol layer type which draws repeating marker symbols along a line feature.
A marker symbol type, for rendering Point and MultiPoint geometries.
A widget for controlling the properties of a QgsPointPatternFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsPointPatternFillSymbolLayerWidget.
A fill symbol layer which fills polygon shapes with repeating marker symbols.
A button for controlling property overrides which may apply to a widget.
A widget for controlling the properties of a QgsRandomMarkerFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRandomMarkerFillSymbolLayerWidget.
A fill symbol layer which places markers at random locations within polygons.
A widget for controlling the properties of a QgsRasterFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated raster image.
A widget for configuring QgsRasterLineSymbolLayer symbol layers.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterLineSymbolLayerWidget.
Line symbol layer type which draws line sections using a raster image file.
A widget for configuring QgsRasterMarkerSymbolLayer symbol layers.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterMarkerSymbolLayerWidget.
Raster marker symbol layer class.
A widget for controlling the properties of a QgsSVGFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSVGFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated SVG file.
A widget for controlling the properties of a QgsShapeburstFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsShapeburstFillSymbolLayerWidget.
A fill symbol layer which applies a gradient from the outer edges of a symbol to the inside.
A widget for controlling the properties of a QgsSimpleFillSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleFillSymbolLayerWidget.
Renders polygons using a single fill and stroke color.
A widget for controlling the properties of a QgsSimpleLineSymbolLayer.
~QgsSimpleLineSymbolLayerWidget() override
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleLineSymbolLayerWidget.
A simple line symbol layer, which renders lines using a line in a variety of styles (e....
A widget for controlling the properties of a QgsSimpleMarkerSymbolLayer.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleMarkerSymbolLayerWidget.
Simple marker symbol layer, consisting of a rendered shape with solid fill color and a stroke.
A widget for controlling the properties of a QgsSvgMarkerSymbolLayer.
Q_DECL_DEPRECATED void populateList()
This method does nothing anymore, the loading is automatic.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSvgMarkerSymbolLayerWidget.
~QgsSvgMarkerSymbolLayerWidget() override
A marker symbol layer which renders an SVG graphic.
Abstract base class for widgets used to configure QgsSymbolLayer classes.
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 QgsSymbolLayer * symbolLayer()=0
const QgsVectorLayer * vectorLayer() const
Returns the vector layer associated with the widget.
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,...
Represents a vector layer which manages a vector based dataset.
#define SIP_DEPRECATED
Definition qgis_sip.h:106
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_FACTORY
Definition qgis_sip.h:76