QGIS API Documentation 3.99.0-Master (d270888f95f)
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>
35
41class GUI_EXPORT QgsSymbolLayerWidget : public QWidget, public QgsExpressionContextGenerator
42{
43 Q_OBJECT
44
45 public:
51 QgsSymbolLayerWidget( QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *vl = nullptr )
52 : QWidget( parent )
53 , mVectorLayer( vl )
54 {}
55
56 virtual void setSymbolLayer( QgsSymbolLayer *layer ) = 0;
58
64 virtual void setContext( const QgsSymbolWidgetContext &context );
65
71
75 QgsVectorLayer *vectorLayer() const { return mVectorLayer; }
76
77 protected:
83 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
84
86
87 private:
88 QgsVectorLayer *mVectorLayer = nullptr;
89
90 signals:
91
96 void changed();
97
105
106 protected slots:
108
109 private slots:
110 void createAuxiliaryField();
111
112 private:
113 QgsSymbolWidgetContext mContext;
114};
115
117
118#include "ui_widget_simpleline.h"
119
121
127class GUI_EXPORT QgsSimpleLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleLine
128{
129 Q_OBJECT
130
131 public:
137 QgsSimpleLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
138
140
146
147 void setSymbolLayer( QgsSymbolLayer *layer ) override;
148 QgsSymbolLayer *symbolLayer() override;
149 void setContext( const QgsSymbolWidgetContext &context ) override;
150
151 protected:
153
154 //creates a new icon for the 'change pattern' button
155 void updatePatternIcon();
156
157 void resizeEvent( QResizeEvent *event ) override;
158
159 private slots:
160
161 void updateAssistantSymbol();
162 void penWidthChanged();
163 void colorChanged( const QColor &color );
164 void penStyleChanged();
165 void offsetChanged();
166 void patternOffsetChanged();
167 void mCustomCheckBox_stateChanged( int state );
168 void mChangePatternButton_clicked();
169 void mPenWidthUnitWidget_changed();
170 void mOffsetUnitWidget_changed();
171 void mDashPatternUnitWidget_changed();
172 void mDrawInsideCheckBox_stateChanged( int state );
173 void patternOffsetUnitChanged();
174
175 private:
176 std::shared_ptr<QgsLineSymbol> mAssistantPreviewSymbol;
177};
178
180
181#include "ui_widget_simplemarker.h"
182
184
190class GUI_EXPORT QgsSimpleMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleMarker
191{
192 Q_OBJECT
193
194 public:
200 QgsSimpleMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
202
208
209 // from base class
210 void setSymbolLayer( QgsSymbolLayer *layer ) override;
211 QgsSymbolLayer *symbolLayer() override;
212
213 public slots:
214
215 void setColorStroke( const QColor &color );
216 void setColorFill( const QColor &color );
217
218 protected:
220
221 private slots:
222 void setSize();
223 void setAngle();
224 void setOffset();
225 void mSizeUnitWidget_changed();
226 void mOffsetUnitWidget_changed();
227 void mStrokeWidthUnitWidget_changed();
228 void mStrokeStyleComboBox_currentIndexChanged( int index );
229 void mStrokeWidthSpinBox_valueChanged( double d );
230 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
231 void mVerticalAnchorComboBox_currentIndexChanged( int index );
232 void setShape();
233 void updateAssistantSymbol();
234 void penJoinStyleChanged();
235 void penCapStyleChanged();
236
237 private:
238 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
239};
240
242
243#include "ui_widget_simplefill.h"
244
246
252class GUI_EXPORT QgsSimpleFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleFill
253{
254 Q_OBJECT
255
256 public:
262 QgsSimpleFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
263
269
270 // from base class
271 void setSymbolLayer( QgsSymbolLayer *layer ) override;
272 QgsSymbolLayer *symbolLayer() override;
273
274 public slots:
275 void setColor( const QColor &color );
276 void setStrokeColor( const QColor &color );
277
278 protected:
280
281 private slots:
282 void setBrushStyle();
283 void strokeWidthChanged();
284 void strokeStyleChanged();
285 void offsetChanged();
286 void mStrokeWidthUnitWidget_changed();
287 void mOffsetUnitWidget_changed();
288};
289
290
292
293#include "ui_widget_filledmarker.h"
294
296
302class GUI_EXPORT QgsFilledMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledMarker
303{
304 Q_OBJECT
305
306 public:
312 QgsFilledMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
314
320
321 // from base class
322 void setSymbolLayer( QgsSymbolLayer *layer ) override;
323 QgsSymbolLayer *symbolLayer() override;
324
325 protected:
327
328 private slots:
329
330 void updateAssistantSymbol();
331 void setShape();
332 void setSize();
333 void setAngle();
334 void setOffset();
335 void mSizeUnitWidget_changed();
336 void mOffsetUnitWidget_changed();
337 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
338 void mVerticalAnchorComboBox_currentIndexChanged( int index );
339
340 private:
341 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
342};
343
345
346#include "ui_widget_gradientfill.h"
347
349
355class GUI_EXPORT QgsGradientFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientFill
356{
357 Q_OBJECT
358
359 public:
365 QgsGradientFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
366
372
373 // from base class
374 void setSymbolLayer( QgsSymbolLayer *layer ) override;
375 QgsSymbolLayer *symbolLayer() override;
376
377 public slots:
378 void setColor( const QColor &color );
379 void setColor2( const QColor &color );
380
384 void applyColorRamp();
385 void setGradientType( int index );
386 void setCoordinateMode( int index );
387 void setGradientSpread( int index );
388
389 protected:
391
392 private slots:
393 void offsetChanged();
394 void referencePointChanged();
395 void mOffsetUnitWidget_changed();
396 void colorModeChanged();
397 void mSpinAngle_valueChanged( double value );
398};
399
401
402#include "ui_widget_shapeburstfill.h"
403
405
411class GUI_EXPORT QgsShapeburstFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetShapeburstFill
412{
413 Q_OBJECT
414
415 public:
422
428
429 // from base class
430 void setSymbolLayer( QgsSymbolLayer *layer ) override;
431 QgsSymbolLayer *symbolLayer() override;
432
433 public slots:
434 void setColor( const QColor &color );
435 void setColor2( const QColor &color );
436
437 protected:
439
440 private slots:
441 void colorModeChanged();
442 void mSpinBlurRadius_valueChanged( int value );
443 void mSpinMaxDistance_valueChanged( double value );
444 void mDistanceUnitWidget_changed();
445 void mRadioUseWholeShape_toggled( bool value );
446 void applyColorRamp();
447 void offsetChanged();
448 void mOffsetUnitWidget_changed();
449 void mIgnoreRingsCheckBox_stateChanged( int state );
450};
451
453
454#include "ui_widget_templatedline.h"
455
458
465class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
466{
467 Q_OBJECT
468
469 public:
474 {
475 Hash,
476 Marker
477 };
478
485 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
486
487 void setSymbolLayer( QgsSymbolLayer *layer ) override;
488 QgsSymbolLayer *symbolLayer() override;
489 void setContext( const QgsSymbolWidgetContext &context ) override;
490
491 public slots:
492
497 void setInterval( double val );
498
503 void setOffsetAlongLine( double val );
504
505 private slots:
506
507 void setHashLength( double val );
508 void setHashAngle( double val );
509
510 void setRotate();
511 void setOffset();
512 void setPlacement();
513 void mIntervalUnitWidget_changed();
514 void mOffsetUnitWidget_changed();
515 void mOffsetAlongLineUnitWidget_changed();
516 void hashLengthUnitWidgetChanged();
517 void averageAngleUnitChanged();
518 void blankSegmentsUnitChanged();
519 void setAverageAngle( double val );
520 void toggleMapToolEditBlankSegments( bool toggled );
521
522 void updateBlankSegmentsWidget();
523
524 private:
525 // Returns blank segments field index, -1 if no dd property field has been set
526 int blankSegmentsFieldIndex() const;
527
528 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
529 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
531};
532
539{
540 Q_OBJECT
541
542 public:
548 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
549
555};
556
564{
565 Q_OBJECT
566
567 public:
573 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
574
580};
581
583
584#include "ui_widget_svgmarker.h"
585
587
593class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
594{
595 Q_OBJECT
596
597 public:
603 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
605
611
612 // from base class
613 void setSymbolLayer( QgsSymbolLayer *layer ) override;
614 QgsSymbolLayer *symbolLayer() override;
615
616 void setContext( const QgsSymbolWidgetContext &context ) override;
617
618 public slots:
620 void setSvgPath( const QString &name );
622 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
623
624
625 protected:
626 // TODO QGIS 5: remove
627
632 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
633
640 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
641
643
644 private slots:
645 void svgSourceChanged( const QString &text );
646 void mChangeColorButton_colorChanged( const QColor &color );
647 void mChangeStrokeColorButton_colorChanged( const QColor &color );
648 void mStrokeWidthSpinBox_valueChanged( double d );
649 void mSizeUnitWidget_changed();
650 void mStrokeWidthUnitWidget_changed();
651 void mOffsetUnitWidget_changed();
652 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
653 void mVerticalAnchorComboBox_currentIndexChanged( int index );
654 void setWidth();
655 void setHeight();
656 void lockAspectRatioChanged( bool locked );
657 void setAngle();
658 void setOffset();
659 void updateAssistantSymbol();
660
661 private:
662 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
663};
664
666
667#include "ui_widget_rastermarker.h"
668
670
677class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
678{
679 Q_OBJECT
680
681 public:
687 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
688
694
695 // from base class
696 void setSymbolLayer( QgsSymbolLayer *layer ) override;
697 QgsSymbolLayer *symbolLayer() override;
698 void setContext( const QgsSymbolWidgetContext &context ) override;
699
700 protected:
702
703 private slots:
704 void imageSourceChanged( const QString &text );
705 void mSizeUnitWidget_changed();
706 void mOffsetUnitWidget_changed();
707 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
708 void mVerticalAnchorComboBox_currentIndexChanged( int index );
709 void setWidth();
710 void setHeight();
711 void setLockAspectRatio( bool locked );
712 void setAngle();
713 void setOffset();
714 void setOpacity( double value );
715 void updatePreviewImage();
716};
717
718
720
721#include "ui_widget_animatedmarker.h"
722
724
731class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
732{
733 Q_OBJECT
734
735 public:
742
748
749 // from base class
750 void setSymbolLayer( QgsSymbolLayer *layer ) override;
751 QgsSymbolLayer *symbolLayer() override;
752 void setContext( const QgsSymbolWidgetContext &context ) override;
753
754 protected:
756
757 private slots:
758 void imageSourceChanged( const QString &text );
759 void mSizeUnitWidget_changed();
760 void mOffsetUnitWidget_changed();
761 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
762 void mVerticalAnchorComboBox_currentIndexChanged( int index );
763 void setWidth();
764 void setHeight();
765 void setLockAspectRatio( bool locked );
766 void setAngle();
767 void setOffset();
768 void setOpacity( double value );
769 void updatePreviewImage();
770
771 private:
772 QMovie *mPreviewMovie = nullptr;
773};
774
775
777
778#include "ui_widget_rasterfill.h"
779
781
787class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
788{
789 Q_OBJECT
790
791 public:
797 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
798
804
805 // from base class
806 void setSymbolLayer( QgsSymbolLayer *layer ) override;
807 QgsSymbolLayer *symbolLayer() override;
808
809 protected:
811
812 private slots:
813 void imageSourceChanged( const QString &text );
814 void setCoordinateMode( int index );
815 void opacityChanged( double value );
816 void offsetChanged();
817 void mOffsetUnitWidget_changed();
818 void mRotationSpinBox_valueChanged( double d );
819
820 private:
821 void updatePreviewImage();
822};
823
824
826
827#include "ui_widget_rasterline.h"
828
830
837class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
838{
839 Q_OBJECT
840
841 public:
847 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
848
854
855 // from base class
856 void setSymbolLayer( QgsSymbolLayer *layer ) override;
857 QgsSymbolLayer *symbolLayer() override;
858
859 protected:
861
862 private slots:
863 void imageSourceChanged( const QString &text );
864 void updatePreviewImage();
865};
866
867
869
870#include "ui_widget_gradientline.h"
871
873
880class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
881{
882 Q_OBJECT
883
884 public:
890 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
891
897
898 // from base class
899 void setSymbolLayer( QgsSymbolLayer *layer ) override;
900 QgsSymbolLayer *symbolLayer() override;
901
902 protected:
904};
905
906
908
909#include "ui_widget_filledline.h"
910
912
919class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
920{
921 Q_OBJECT
922
923 public:
929 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
930
932
938
939 void setSymbolLayer( QgsSymbolLayer *layer ) override;
940 QgsSymbolLayer *symbolLayer() override;
941
942 private:
943 QgsFilledLineSymbolLayer *mLayer = nullptr;
944};
945
946
948
949#include "ui_widget_svgfill.h"
950
952
958class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
959{
960 Q_OBJECT
961
962 public:
968 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
969
975
976 // from base class
977 void setSymbolLayer( QgsSymbolLayer *layer ) override;
978 QgsSymbolLayer *symbolLayer() override;
979 void setContext( const QgsSymbolWidgetContext &context ) override;
980
981 protected:
983
990 void updateParamGui( bool resetValues = true );
991
992 private slots:
993 void mTextureWidthSpinBox_valueChanged( double d );
994 void svgSourceChanged( const QString &text );
995 void setFile( const QString &name );
996 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
997 void mRotationSpinBox_valueChanged( double d );
998 void mChangeColorButton_colorChanged( const QColor &color );
999 void mChangeStrokeColorButton_colorChanged( const QColor &color );
1000 void mStrokeWidthSpinBox_valueChanged( double d );
1001 void mTextureWidthUnitWidget_changed();
1002 void mSvgStrokeWidthUnitWidget_changed();
1003};
1004
1006
1007#include "ui_widget_linepatternfill.h"
1008
1010
1016class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1017{
1018 Q_OBJECT
1019
1020 public:
1027
1033
1034 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1035 QgsSymbolLayer *symbolLayer() override;
1036
1037 protected:
1039
1040 private slots:
1041 void mAngleSpinBox_valueChanged( double d );
1042 void mDistanceSpinBox_valueChanged( double d );
1043 void mOffsetSpinBox_valueChanged( double d );
1044 void mDistanceUnitWidget_changed();
1045 void mOffsetUnitWidget_changed();
1046};
1047
1049
1050#include "ui_widget_pointpatternfill.h"
1051
1053
1059class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1060{
1061 Q_OBJECT
1062
1063 public:
1070
1076
1077 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1078 QgsSymbolLayer *symbolLayer() override;
1079
1080 protected:
1082
1083 private slots:
1084 void mHorizontalDistanceSpinBox_valueChanged( double d );
1085 void mVerticalDistanceSpinBox_valueChanged( double d );
1086 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1087 void mVerticalDisplacementSpinBox_valueChanged( double d );
1088 void mHorizontalOffsetSpinBox_valueChanged( double d );
1089 void mVerticalOffsetSpinBox_valueChanged( double d );
1090 void mHorizontalDistanceUnitWidget_changed();
1091 void mVerticalDistanceUnitWidget_changed();
1092 void mHorizontalDisplacementUnitWidget_changed();
1093 void mVerticalDisplacementUnitWidget_changed();
1094 void mHorizontalOffsetUnitWidget_changed();
1095 void mVerticalOffsetUnitWidget_changed();
1096};
1097
1098
1100
1101#include "ui_widget_randommarkerfill.h"
1102
1104
1112class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1113{
1114 Q_OBJECT
1115
1116 public:
1123
1129
1130 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1131 QgsSymbolLayer *symbolLayer() override;
1132
1133 private:
1134 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1135
1136 private slots:
1137
1138 void countMethodChanged( int );
1139 void countChanged( int d );
1140 void densityAreaChanged( double d );
1141 void densityAreaUnitChanged();
1142 void seedChanged( int d );
1143};
1144
1146
1147#include "ui_widget_fontmarker.h"
1148
1150class CharacterWidget;
1151
1157class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1158{
1159 Q_OBJECT
1160
1161 public:
1167 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1169
1175
1176 // from base class
1177 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1178 QgsSymbolLayer *symbolLayer() override;
1179
1180 public slots:
1181 void setFontFamily( const QFont &font );
1182 void setColor( const QColor &color );
1183
1187 void setColorStroke( const QColor &color );
1188 void setSize( double size );
1189 void setAngle( double angle );
1190
1195 void setCharacter( QChar chr );
1196
1202 void setCharacterFromText( const QString &text );
1203
1204 protected:
1207
1208 private slots:
1209
1214 void setFontStyle( const QString &style );
1215
1216 void setOffset();
1217 void mSizeUnitWidget_changed();
1218 void mOffsetUnitWidget_changed();
1219 void mStrokeWidthUnitWidget_changed();
1220 void mStrokeWidthSpinBox_valueChanged( double d );
1221
1222 void populateFontStyleComboBox();
1223 void mFontStyleComboBox_currentIndexChanged( int index );
1224
1225 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1226 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1227 void penJoinStyleChanged();
1228 void updateAssistantSymbol();
1229
1230 private:
1231 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1232
1233 QFont mRefFont;
1234 QFontDatabase mFontDB;
1235};
1236
1238
1239
1240#include "ui_widget_centroidfill.h"
1241
1243
1249class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1250{
1251 Q_OBJECT
1252
1253 public:
1259 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1260
1266
1267 // from base class
1268 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1269 QgsSymbolLayer *symbolLayer() override;
1270
1271 protected:
1273
1274 private slots:
1275 void mDrawInsideCheckBox_stateChanged( int state );
1276 void mDrawAllPartsCheckBox_stateChanged( int state );
1277 void mClipPointsCheckBox_stateChanged( int state );
1278 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1279};
1280
1281
1283
1284#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1285
1287
1294class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1295{
1296 Q_OBJECT
1297
1298 public:
1303
1305
1311
1312 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1313 QgsSymbolLayer *symbolLayer() override;
1314 void setContext( const QgsSymbolWidgetContext &context ) override;
1315
1316 private slots:
1317 void changeNumberFormat();
1318
1319 private:
1320 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1321 bool mBlockChangesSignal = false;
1322};
1323
1324
1325#include "ui_qgsgeometrygeneratorwidgetbase.h"
1326#include "qgis_gui.h"
1327
1329
1335class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1336{
1337 Q_OBJECT
1338
1339 public:
1346
1351
1352 // from base class
1353 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1354 QgsSymbolLayer *symbolLayer() override;
1355
1356 private:
1357 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1358 int mBlockSignals = 0;
1359
1360 private slots:
1361 void updateExpression( const QString &string );
1362 void updateSymbolType();
1363};
1364
1365#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:114
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53
#define SIP_FACTORY
Definition qgis_sip.h:84