QGIS API Documentation 3.99.0-Master (26c88405ac0)
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:
42
48 QgsSymbolLayerWidget( QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *vl = nullptr )
49 : QWidget( parent )
50 , mVectorLayer( vl )
51 {}
52
53 virtual void setSymbolLayer( QgsSymbolLayer *layer ) = 0;
55
61 virtual void setContext( const QgsSymbolWidgetContext &context );
62
68
72 const QgsVectorLayer *vectorLayer() const { return mVectorLayer; }
73
74 protected:
75
81 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
82
84
85 private:
86 QgsVectorLayer *mVectorLayer = nullptr;
87
88 signals:
89
94 void changed();
95
103
104 protected slots:
106
107 private slots:
108 void createAuxiliaryField();
109
110 private:
111 QgsSymbolWidgetContext mContext;
112};
113
115
116#include "ui_widget_simpleline.h"
117
119
125class GUI_EXPORT QgsSimpleLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleLine
126{
127 Q_OBJECT
128
129 public:
130
136 QgsSimpleLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
137
139
145
146 void setSymbolLayer( QgsSymbolLayer *layer ) override;
147 QgsSymbolLayer *symbolLayer() override;
148 void setContext( const QgsSymbolWidgetContext &context ) override;
149
150 protected:
152
153 //creates a new icon for the 'change pattern' button
154 void updatePatternIcon();
155
156 void resizeEvent( QResizeEvent *event ) override;
157
158 private slots:
159
160 void updateAssistantSymbol();
161 void penWidthChanged();
162 void colorChanged( const QColor &color );
163 void penStyleChanged();
164 void offsetChanged();
165 void patternOffsetChanged();
166 void mCustomCheckBox_stateChanged( int state );
167 void mChangePatternButton_clicked();
168 void mPenWidthUnitWidget_changed();
169 void mOffsetUnitWidget_changed();
170 void mDashPatternUnitWidget_changed();
171 void mDrawInsideCheckBox_stateChanged( int state );
172 void patternOffsetUnitChanged();
173
174 private:
175 std::shared_ptr<QgsLineSymbol> mAssistantPreviewSymbol;
176};
177
179
180#include "ui_widget_simplemarker.h"
181
183
189class GUI_EXPORT QgsSimpleMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleMarker
190{
191 Q_OBJECT
192
193 public:
194
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:
257
263 QgsSimpleFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
264
270
271 // from base class
272 void setSymbolLayer( QgsSymbolLayer *layer ) override;
273 QgsSymbolLayer *symbolLayer() override;
274
275 public slots:
276 void setColor( const QColor &color );
277 void setStrokeColor( const QColor &color );
278
279 protected:
281
282 private slots:
283 void setBrushStyle();
284 void strokeWidthChanged();
285 void strokeStyleChanged();
286 void offsetChanged();
287 void mStrokeWidthUnitWidget_changed();
288 void mOffsetUnitWidget_changed();
289};
290
291
293
294#include "ui_widget_filledmarker.h"
295
297
303class GUI_EXPORT QgsFilledMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledMarker
304{
305 Q_OBJECT
306
307 public:
308
314 QgsFilledMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
316
322
323 // from base class
324 void setSymbolLayer( QgsSymbolLayer *layer ) override;
325 QgsSymbolLayer *symbolLayer() override;
326
327 protected:
329
330 private slots:
331
332 void updateAssistantSymbol();
333 void setShape();
334 void setSize();
335 void setAngle();
336 void setOffset();
337 void mSizeUnitWidget_changed();
338 void mOffsetUnitWidget_changed();
339 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
340 void mVerticalAnchorComboBox_currentIndexChanged( int index );
341
342 private:
343 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
344};
345
347
348#include "ui_widget_gradientfill.h"
349
351
357class GUI_EXPORT QgsGradientFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientFill
358{
359 Q_OBJECT
360
361 public:
362
368 QgsGradientFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
369
375
376 // from base class
377 void setSymbolLayer( QgsSymbolLayer *layer ) override;
378 QgsSymbolLayer *symbolLayer() override;
379
380 public slots:
381 void setColor( const QColor &color );
382 void setColor2( const QColor &color );
383
387 void applyColorRamp();
388 void setGradientType( int index );
389 void setCoordinateMode( int index );
390 void setGradientSpread( int index );
391
392 protected:
394
395 private slots:
396 void offsetChanged();
397 void referencePointChanged();
398 void mOffsetUnitWidget_changed();
399 void colorModeChanged();
400 void mSpinAngle_valueChanged( double value );
401};
402
404
405#include "ui_widget_shapeburstfill.h"
406
408
414class GUI_EXPORT QgsShapeburstFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetShapeburstFill
415{
416 Q_OBJECT
417
418 public:
419
426
432
433 // from base class
434 void setSymbolLayer( QgsSymbolLayer *layer ) override;
435 QgsSymbolLayer *symbolLayer() override;
436
437 public slots:
438 void setColor( const QColor &color );
439 void setColor2( const QColor &color );
440
441 protected:
443
444 private slots:
445 void colorModeChanged();
446 void mSpinBlurRadius_valueChanged( int value );
447 void mSpinMaxDistance_valueChanged( double value );
448 void mDistanceUnitWidget_changed();
449 void mRadioUseWholeShape_toggled( bool value );
450 void applyColorRamp();
451 void offsetChanged();
452 void mOffsetUnitWidget_changed();
453 void mIgnoreRingsCheckBox_stateChanged( int state );
454};
455
457
458#include "ui_widget_templatedline.h"
459
461
468class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
469{
470 Q_OBJECT
471
472 public:
473
478 {
479 Hash,
480 Marker
481 };
482
489 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
490
491 void setSymbolLayer( QgsSymbolLayer *layer ) override;
492 QgsSymbolLayer *symbolLayer() override;
493 void setContext( const QgsSymbolWidgetContext &context ) override;
494
495 public slots:
496
501 void setInterval( double val );
502
507 void setOffsetAlongLine( double val );
508
509 private slots:
510
511 void setHashLength( double val );
512 void setHashAngle( double val );
513
514 void setRotate();
515 void setOffset();
516 void setPlacement();
517 void mIntervalUnitWidget_changed();
518 void mOffsetUnitWidget_changed();
519 void mOffsetAlongLineUnitWidget_changed();
520 void hashLengthUnitWidgetChanged();
521 void averageAngleUnitChanged();
522 void setAverageAngle( double val );
523
524 private:
525 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
526 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
527};
528
535{
536 Q_OBJECT
537
538 public:
539
545 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
546
552};
553
561{
562 Q_OBJECT
563
564 public:
565
571 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
572
578};
579
581
582#include "ui_widget_svgmarker.h"
583
585
591class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
592{
593 Q_OBJECT
594
595 public:
596
602 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
604
610
611 // from base class
612 void setSymbolLayer( QgsSymbolLayer *layer ) override;
613 QgsSymbolLayer *symbolLayer() override;
614
615 void setContext( const QgsSymbolWidgetContext &context ) override;
616
617 public slots:
619 void setSvgPath( const QString &name );
621 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
622
623
624 protected:
625 // TODO QGIS 4: remove
626
631 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
632
639 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
640
642
643 private slots:
644 void svgSourceChanged( const QString &text );
645 void mChangeColorButton_colorChanged( const QColor &color );
646 void mChangeStrokeColorButton_colorChanged( const QColor &color );
647 void mStrokeWidthSpinBox_valueChanged( double d );
648 void mSizeUnitWidget_changed();
649 void mStrokeWidthUnitWidget_changed();
650 void mOffsetUnitWidget_changed();
651 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
652 void mVerticalAnchorComboBox_currentIndexChanged( int index );
653 void setWidth();
654 void setHeight();
655 void lockAspectRatioChanged( bool locked );
656 void setAngle();
657 void setOffset();
658 void updateAssistantSymbol();
659
660 private:
661 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
662};
663
665
666#include "ui_widget_rastermarker.h"
667
669
676class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
677{
678 Q_OBJECT
679
680 public:
681
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:
736
743
749
750 // from base class
751 void setSymbolLayer( QgsSymbolLayer *layer ) override;
752 QgsSymbolLayer *symbolLayer() override;
753 void setContext( const QgsSymbolWidgetContext &context ) override;
754
755 protected:
757
758 private slots:
759 void imageSourceChanged( const QString &text );
760 void mSizeUnitWidget_changed();
761 void mOffsetUnitWidget_changed();
762 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
763 void mVerticalAnchorComboBox_currentIndexChanged( int index );
764 void setWidth();
765 void setHeight();
766 void setLockAspectRatio( bool locked );
767 void setAngle();
768 void setOffset();
769 void setOpacity( double value );
770 void updatePreviewImage();
771
772 private:
773 QMovie *mPreviewMovie = nullptr;
774};
775
776
778
779#include "ui_widget_rasterfill.h"
780
782
788class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
789{
790 Q_OBJECT
791
792 public:
793
799 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
800
806
807 // from base class
808 void setSymbolLayer( QgsSymbolLayer *layer ) override;
809 QgsSymbolLayer *symbolLayer() override;
810
811 protected:
813
814 private slots:
815 void imageSourceChanged( const QString &text );
816 void setCoordinateMode( int index );
817 void opacityChanged( double value );
818 void offsetChanged();
819 void mOffsetUnitWidget_changed();
820 void mRotationSpinBox_valueChanged( double d );
821
822 private:
823 void updatePreviewImage();
824};
825
826
828
829#include "ui_widget_rasterline.h"
830
832
839class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
840{
841 Q_OBJECT
842
843 public:
844
850 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
851
857
858 // from base class
859 void setSymbolLayer( QgsSymbolLayer *layer ) override;
860 QgsSymbolLayer *symbolLayer() override;
861
862 protected:
864
865 private slots:
866 void imageSourceChanged( const QString &text );
867 void updatePreviewImage();
868};
869
870
872
873#include "ui_widget_gradientline.h"
874
876
883class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
884{
885 Q_OBJECT
886
887 public:
888
894 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
895
901
902 // from base class
903 void setSymbolLayer( QgsSymbolLayer *layer ) override;
904 QgsSymbolLayer *symbolLayer() override;
905
906 protected:
908};
909
910
912
913#include "ui_widget_filledline.h"
914
916
923class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
924{
925 Q_OBJECT
926
927 public:
928
934 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
935
937
943
944 void setSymbolLayer( QgsSymbolLayer *layer ) override;
945 QgsSymbolLayer *symbolLayer() override;
946
947 private:
948 QgsFilledLineSymbolLayer *mLayer = nullptr;
949};
950
951
953
954#include "ui_widget_svgfill.h"
955
957
963class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
964{
965 Q_OBJECT
966
967 public:
968
974 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
975
981
982 // from base class
983 void setSymbolLayer( QgsSymbolLayer *layer ) override;
984 QgsSymbolLayer *symbolLayer() override;
985 void setContext( const QgsSymbolWidgetContext &context ) override;
986
987 protected:
989
996 void updateParamGui( bool resetValues = true );
997
998 private slots:
999 void mTextureWidthSpinBox_valueChanged( double d );
1000 void svgSourceChanged( const QString &text );
1001 void setFile( const QString &name );
1002 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
1003 void mRotationSpinBox_valueChanged( double d );
1004 void mChangeColorButton_colorChanged( const QColor &color );
1005 void mChangeStrokeColorButton_colorChanged( const QColor &color );
1006 void mStrokeWidthSpinBox_valueChanged( double d );
1007 void mTextureWidthUnitWidget_changed();
1008 void mSvgStrokeWidthUnitWidget_changed();
1009};
1010
1012
1013#include "ui_widget_linepatternfill.h"
1014
1016
1022class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1023{
1024 Q_OBJECT
1025
1026 public:
1027
1034
1040
1041 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1042 QgsSymbolLayer *symbolLayer() override;
1043
1044 protected:
1046
1047 private slots:
1048 void mAngleSpinBox_valueChanged( double d );
1049 void mDistanceSpinBox_valueChanged( double d );
1050 void mOffsetSpinBox_valueChanged( double d );
1051 void mDistanceUnitWidget_changed();
1052 void mOffsetUnitWidget_changed();
1053};
1054
1056
1057#include "ui_widget_pointpatternfill.h"
1058
1060
1066class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1067{
1068 Q_OBJECT
1069
1070 public:
1071
1078
1084
1085 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1086 QgsSymbolLayer *symbolLayer() override;
1087
1088 protected:
1090
1091 private slots:
1092 void mHorizontalDistanceSpinBox_valueChanged( double d );
1093 void mVerticalDistanceSpinBox_valueChanged( double d );
1094 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1095 void mVerticalDisplacementSpinBox_valueChanged( double d );
1096 void mHorizontalOffsetSpinBox_valueChanged( double d );
1097 void mVerticalOffsetSpinBox_valueChanged( double d );
1098 void mHorizontalDistanceUnitWidget_changed();
1099 void mVerticalDistanceUnitWidget_changed();
1100 void mHorizontalDisplacementUnitWidget_changed();
1101 void mVerticalDisplacementUnitWidget_changed();
1102 void mHorizontalOffsetUnitWidget_changed();
1103 void mVerticalOffsetUnitWidget_changed();
1104};
1105
1106
1108
1109#include "ui_widget_randommarkerfill.h"
1110
1112
1120class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1121{
1122 Q_OBJECT
1123
1124 public:
1125
1132
1138
1139 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1140 QgsSymbolLayer *symbolLayer() override;
1141
1142 private:
1143 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1144
1145 private slots:
1146
1147 void countMethodChanged( int );
1148 void countChanged( int d );
1149 void densityAreaChanged( double d );
1150 void densityAreaUnitChanged();
1151 void seedChanged( int d );
1152};
1153
1155
1156#include "ui_widget_fontmarker.h"
1157
1159class CharacterWidget;
1160
1166class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1167{
1168 Q_OBJECT
1169
1170 public:
1171
1177 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1179
1185
1186 // from base class
1187 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1188 QgsSymbolLayer *symbolLayer() override;
1189
1190 public slots:
1191 void setFontFamily( const QFont &font );
1192 void setColor( const QColor &color );
1193
1197 void setColorStroke( const QColor &color );
1198 void setSize( double size );
1199 void setAngle( double angle );
1200
1205 void setCharacter( QChar chr );
1206
1212 void setCharacterFromText( const QString &text );
1213
1214 protected:
1217
1218 private slots:
1219
1224 void setFontStyle( const QString &style );
1225
1226 void setOffset();
1227 void mSizeUnitWidget_changed();
1228 void mOffsetUnitWidget_changed();
1229 void mStrokeWidthUnitWidget_changed();
1230 void mStrokeWidthSpinBox_valueChanged( double d );
1231
1232 void populateFontStyleComboBox();
1233 void mFontStyleComboBox_currentIndexChanged( int index );
1234
1235 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1236 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1237 void penJoinStyleChanged();
1238 void updateAssistantSymbol();
1239
1240 private:
1241 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1242
1243 QFont mRefFont;
1244 QFontDatabase mFontDB;
1245};
1246
1248
1249
1250#include "ui_widget_centroidfill.h"
1251
1253
1259class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1260{
1261 Q_OBJECT
1262
1263 public:
1264
1270 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1271
1277
1278 // from base class
1279 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1280 QgsSymbolLayer *symbolLayer() override;
1281
1282 protected:
1284
1285 private slots:
1286 void mDrawInsideCheckBox_stateChanged( int state );
1287 void mDrawAllPartsCheckBox_stateChanged( int state );
1288 void mClipPointsCheckBox_stateChanged( int state );
1289 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1290};
1291
1292
1294
1295#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1296
1298
1305class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1306{
1307 Q_OBJECT
1308
1309 public:
1310
1315
1317
1323
1324 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1325 QgsSymbolLayer *symbolLayer() override;
1326 void setContext( const QgsSymbolWidgetContext &context ) override;
1327
1328 private slots:
1329 void changeNumberFormat();
1330
1331 private:
1332 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1333 bool mBlockChangesSignal = false;
1334};
1335
1336
1337#include "ui_qgsgeometrygeneratorwidgetbase.h"
1338#include "qgis_gui.h"
1339
1341
1347class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1348{
1349 Q_OBJECT
1350
1351 public:
1352
1359
1364
1365 // from base class
1366 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1367 QgsSymbolLayer *symbolLayer() override;
1368
1369 private:
1370 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1371 int mBlockSignals = 0;
1372
1373 private slots:
1374 void updateExpression( const QString &string );
1375 void updateSymbolType();
1376};
1377
1378#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