QGIS API Documentation 3.99.0-Master (2fe06baccd8)
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
25#include <QStandardItemModel>
26#include <QWidget>
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
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:
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:
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:
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:
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:
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:
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_templatedline.h"
451
453
460class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
461{
462 Q_OBJECT
463
464 public:
469 {
470 Hash,
471 Marker
472 };
473
480 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
481
482 void setSymbolLayer( QgsSymbolLayer *layer ) override;
483 QgsSymbolLayer *symbolLayer() override;
484 void setContext( const QgsSymbolWidgetContext &context ) override;
485
486 public slots:
487
492 void setInterval( double val );
493
498 void setOffsetAlongLine( double val );
499
500 private slots:
501
502 void setHashLength( double val );
503 void setHashAngle( double val );
504
505 void setRotate();
506 void setOffset();
507 void setPlacement();
508 void mIntervalUnitWidget_changed();
509 void mOffsetUnitWidget_changed();
510 void mOffsetAlongLineUnitWidget_changed();
511 void hashLengthUnitWidgetChanged();
512 void averageAngleUnitChanged();
513 void setAverageAngle( double val );
514
515 private:
516 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
517 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
518};
519
526{
527 Q_OBJECT
528
529 public:
535 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
536
542};
543
551{
552 Q_OBJECT
553
554 public:
560 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
561
567};
568
570
571#include "ui_widget_svgmarker.h"
572
574
580class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
581{
582 Q_OBJECT
583
584 public:
590 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
592
598
599 // from base class
600 void setSymbolLayer( QgsSymbolLayer *layer ) override;
601 QgsSymbolLayer *symbolLayer() override;
602
603 void setContext( const QgsSymbolWidgetContext &context ) override;
604
605 public slots:
607 void setSvgPath( const QString &name );
609 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
610
611
612 protected:
613 // TODO QGIS 4: remove
614
619 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
620
627 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
628
630
631 private slots:
632 void svgSourceChanged( const QString &text );
633 void mChangeColorButton_colorChanged( const QColor &color );
634 void mChangeStrokeColorButton_colorChanged( const QColor &color );
635 void mStrokeWidthSpinBox_valueChanged( double d );
636 void mSizeUnitWidget_changed();
637 void mStrokeWidthUnitWidget_changed();
638 void mOffsetUnitWidget_changed();
639 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
640 void mVerticalAnchorComboBox_currentIndexChanged( int index );
641 void setWidth();
642 void setHeight();
643 void lockAspectRatioChanged( bool locked );
644 void setAngle();
645 void setOffset();
646 void updateAssistantSymbol();
647
648 private:
649 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
650};
651
653
654#include "ui_widget_rastermarker.h"
655
657
664class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
665{
666 Q_OBJECT
667
668 public:
674 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
675
681
682 // from base class
683 void setSymbolLayer( QgsSymbolLayer *layer ) override;
684 QgsSymbolLayer *symbolLayer() override;
685 void setContext( const QgsSymbolWidgetContext &context ) override;
686
687 protected:
689
690 private slots:
691 void imageSourceChanged( const QString &text );
692 void mSizeUnitWidget_changed();
693 void mOffsetUnitWidget_changed();
694 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
695 void mVerticalAnchorComboBox_currentIndexChanged( int index );
696 void setWidth();
697 void setHeight();
698 void setLockAspectRatio( bool locked );
699 void setAngle();
700 void setOffset();
701 void setOpacity( double value );
702 void updatePreviewImage();
703};
704
705
707
708#include "ui_widget_animatedmarker.h"
709
711
718class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
719{
720 Q_OBJECT
721
722 public:
729
735
736 // from base class
737 void setSymbolLayer( QgsSymbolLayer *layer ) override;
738 QgsSymbolLayer *symbolLayer() override;
739 void setContext( const QgsSymbolWidgetContext &context ) override;
740
741 protected:
743
744 private slots:
745 void imageSourceChanged( const QString &text );
746 void mSizeUnitWidget_changed();
747 void mOffsetUnitWidget_changed();
748 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
749 void mVerticalAnchorComboBox_currentIndexChanged( int index );
750 void setWidth();
751 void setHeight();
752 void setLockAspectRatio( bool locked );
753 void setAngle();
754 void setOffset();
755 void setOpacity( double value );
756 void updatePreviewImage();
757
758 private:
759 QMovie *mPreviewMovie = nullptr;
760};
761
762
764
765#include "ui_widget_rasterfill.h"
766
768
774class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
775{
776 Q_OBJECT
777
778 public:
784 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
785
791
792 // from base class
793 void setSymbolLayer( QgsSymbolLayer *layer ) override;
794 QgsSymbolLayer *symbolLayer() override;
795
796 protected:
798
799 private slots:
800 void imageSourceChanged( const QString &text );
801 void setCoordinateMode( int index );
802 void opacityChanged( double value );
803 void offsetChanged();
804 void mOffsetUnitWidget_changed();
805 void mRotationSpinBox_valueChanged( double d );
806
807 private:
808 void updatePreviewImage();
809};
810
811
813
814#include "ui_widget_rasterline.h"
815
817
824class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
825{
826 Q_OBJECT
827
828 public:
834 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
835
841
842 // from base class
843 void setSymbolLayer( QgsSymbolLayer *layer ) override;
844 QgsSymbolLayer *symbolLayer() override;
845
846 protected:
848
849 private slots:
850 void imageSourceChanged( const QString &text );
851 void updatePreviewImage();
852};
853
854
856
857#include "ui_widget_gradientline.h"
858
860
867class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
868{
869 Q_OBJECT
870
871 public:
877 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
878
884
885 // from base class
886 void setSymbolLayer( QgsSymbolLayer *layer ) override;
887 QgsSymbolLayer *symbolLayer() override;
888
889 protected:
891};
892
893
895
896#include "ui_widget_filledline.h"
897
899
906class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
907{
908 Q_OBJECT
909
910 public:
916 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
917
919
925
926 void setSymbolLayer( QgsSymbolLayer *layer ) override;
927 QgsSymbolLayer *symbolLayer() override;
928
929 private:
930 QgsFilledLineSymbolLayer *mLayer = nullptr;
931};
932
933
935
936#include "ui_widget_svgfill.h"
937
939
945class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
946{
947 Q_OBJECT
948
949 public:
955 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
956
962
963 // from base class
964 void setSymbolLayer( QgsSymbolLayer *layer ) override;
965 QgsSymbolLayer *symbolLayer() override;
966 void setContext( const QgsSymbolWidgetContext &context ) override;
967
968 protected:
970
977 void updateParamGui( bool resetValues = true );
978
979 private slots:
980 void mTextureWidthSpinBox_valueChanged( double d );
981 void svgSourceChanged( const QString &text );
982 void setFile( const QString &name );
983 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
984 void mRotationSpinBox_valueChanged( double d );
985 void mChangeColorButton_colorChanged( const QColor &color );
986 void mChangeStrokeColorButton_colorChanged( const QColor &color );
987 void mStrokeWidthSpinBox_valueChanged( double d );
988 void mTextureWidthUnitWidget_changed();
989 void mSvgStrokeWidthUnitWidget_changed();
990};
991
993
994#include "ui_widget_linepatternfill.h"
995
997
1003class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1004{
1005 Q_OBJECT
1006
1007 public:
1014
1020
1021 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1022 QgsSymbolLayer *symbolLayer() override;
1023
1024 protected:
1026
1027 private slots:
1028 void mAngleSpinBox_valueChanged( double d );
1029 void mDistanceSpinBox_valueChanged( double d );
1030 void mOffsetSpinBox_valueChanged( double d );
1031 void mDistanceUnitWidget_changed();
1032 void mOffsetUnitWidget_changed();
1033};
1034
1036
1037#include "ui_widget_pointpatternfill.h"
1038
1040
1046class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1047{
1048 Q_OBJECT
1049
1050 public:
1057
1063
1064 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1065 QgsSymbolLayer *symbolLayer() override;
1066
1067 protected:
1069
1070 private slots:
1071 void mHorizontalDistanceSpinBox_valueChanged( double d );
1072 void mVerticalDistanceSpinBox_valueChanged( double d );
1073 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1074 void mVerticalDisplacementSpinBox_valueChanged( double d );
1075 void mHorizontalOffsetSpinBox_valueChanged( double d );
1076 void mVerticalOffsetSpinBox_valueChanged( double d );
1077 void mHorizontalDistanceUnitWidget_changed();
1078 void mVerticalDistanceUnitWidget_changed();
1079 void mHorizontalDisplacementUnitWidget_changed();
1080 void mVerticalDisplacementUnitWidget_changed();
1081 void mHorizontalOffsetUnitWidget_changed();
1082 void mVerticalOffsetUnitWidget_changed();
1083};
1084
1085
1087
1088#include "ui_widget_randommarkerfill.h"
1089
1091
1099class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1100{
1101 Q_OBJECT
1102
1103 public:
1110
1116
1117 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1118 QgsSymbolLayer *symbolLayer() override;
1119
1120 private:
1121 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1122
1123 private slots:
1124
1125 void countMethodChanged( int );
1126 void countChanged( int d );
1127 void densityAreaChanged( double d );
1128 void densityAreaUnitChanged();
1129 void seedChanged( int d );
1130};
1131
1133
1134#include "ui_widget_fontmarker.h"
1135
1137class CharacterWidget;
1138
1144class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1145{
1146 Q_OBJECT
1147
1148 public:
1154 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1156
1162
1163 // from base class
1164 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1165 QgsSymbolLayer *symbolLayer() override;
1166
1167 public slots:
1168 void setFontFamily( const QFont &font );
1169 void setColor( const QColor &color );
1170
1174 void setColorStroke( const QColor &color );
1175 void setSize( double size );
1176 void setAngle( double angle );
1177
1182 void setCharacter( QChar chr );
1183
1189 void setCharacterFromText( const QString &text );
1190
1191 protected:
1194
1195 private slots:
1196
1201 void setFontStyle( const QString &style );
1202
1203 void setOffset();
1204 void mSizeUnitWidget_changed();
1205 void mOffsetUnitWidget_changed();
1206 void mStrokeWidthUnitWidget_changed();
1207 void mStrokeWidthSpinBox_valueChanged( double d );
1208
1209 void populateFontStyleComboBox();
1210 void mFontStyleComboBox_currentIndexChanged( int index );
1211
1212 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1213 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1214 void penJoinStyleChanged();
1215 void updateAssistantSymbol();
1216
1217 private:
1218 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1219
1220 QFont mRefFont;
1221 QFontDatabase mFontDB;
1222};
1223
1225
1226
1227#include "ui_widget_centroidfill.h"
1228
1230
1236class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1237{
1238 Q_OBJECT
1239
1240 public:
1246 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1247
1253
1254 // from base class
1255 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1256 QgsSymbolLayer *symbolLayer() override;
1257
1258 protected:
1260
1261 private slots:
1262 void mDrawInsideCheckBox_stateChanged( int state );
1263 void mDrawAllPartsCheckBox_stateChanged( int state );
1264 void mClipPointsCheckBox_stateChanged( int state );
1265 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1266};
1267
1268
1270
1271#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1272
1274
1281class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1282{
1283 Q_OBJECT
1284
1285 public:
1290
1292
1298
1299 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1300 QgsSymbolLayer *symbolLayer() override;
1301 void setContext( const QgsSymbolWidgetContext &context ) override;
1302
1303 private slots:
1304 void changeNumberFormat();
1305
1306 private:
1307 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1308 bool mBlockChangesSignal = false;
1309};
1310
1311
1312#include "ui_qgsgeometrygeneratorwidgetbase.h"
1313#include "qgis_gui.h"
1314
1316
1322class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1323{
1324 Q_OBJECT
1325
1326 public:
1333
1338
1339 // from base class
1340 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1341 QgsSymbolLayer *symbolLayer() override;
1342
1343 private:
1344 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1345 int mBlockSignals = 0;
1346
1347 private slots:
1348 void updateExpression( const QString &string );
1349 void updateSymbolType();
1350};
1351
1352#endif
A widget for displaying characters available in a preset font, and allowing users to select an indivi...
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.
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.
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...
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,...
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:114
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_FACTORY
Definition qgis_sip.h:84