QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
Loading...
Searching...
No Matches
qgssymbollayerwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssymbollayerwidget.h - symbol layer widgets
3
4 ---------------------
5 begin : November 2009
6 copyright : (C) 2009 by Martin Dobias
7 email : wonder dot sk at gmail dot com
8 ***************************************************************************
9 * *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 ***************************************************************************/
16
17#ifndef QGSSYMBOLLAYERWIDGET_H
18#define QGSSYMBOLLAYERWIDGET_H
19
20#include "qgis_sip.h"
22#include "qgssymbollayer.h"
24#include "qobjectuniqueptr.h"
25
26#include <QStandardItemModel>
27#include <QWidget>
28
29class QgsVectorLayer;
30class QgsMarkerSymbol;
31class QgsLineSymbol;
32
33template<class T> class GUI_EXPORT QgsMapToolEditBlankSegments;
34
40class GUI_EXPORT QgsSymbolLayerWidget : public QWidget, public QgsExpressionContextGenerator
41{
42 Q_OBJECT
43
44 public:
50 QgsSymbolLayerWidget( QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *vl = nullptr )
51 : QWidget( parent )
52 , mVectorLayer( vl )
53 {}
54
55 virtual void setSymbolLayer( QgsSymbolLayer *layer ) = 0;
57
63 virtual void setContext( const QgsSymbolWidgetContext &context );
64
70
74 QgsVectorLayer *vectorLayer() const { return mVectorLayer; }
75
76 protected:
82 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
83
85
86 private:
87 QgsVectorLayer *mVectorLayer = nullptr;
88
89 signals:
90
95 void changed();
96
104
105 protected slots:
107
108 private slots:
109 void createAuxiliaryField();
110
111 private:
112 QgsSymbolWidgetContext mContext;
113};
114
116
117#include "ui_widget_simpleline.h"
118
120
126class GUI_EXPORT QgsSimpleLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleLine
127{
128 Q_OBJECT
129
130 public:
136 QgsSimpleLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
137
139
145
146 void setSymbolLayer( QgsSymbolLayer *layer ) override;
147 QgsSymbolLayer *symbolLayer() override;
148 void setContext( const QgsSymbolWidgetContext &context ) override;
149
150 protected:
152
153 //creates a new icon for the 'change pattern' button
154 void updatePatternIcon();
155
156 void resizeEvent( QResizeEvent *event ) override;
157
158 private slots:
159
160 void updateAssistantSymbol();
161 void penWidthChanged();
162 void colorChanged( const QColor &color );
163 void penStyleChanged();
164 void offsetChanged();
165 void patternOffsetChanged();
166 void mCustomCheckBox_stateChanged( int state );
167 void mChangePatternButton_clicked();
168 void mPenWidthUnitWidget_changed();
169 void mOffsetUnitWidget_changed();
170 void mDashPatternUnitWidget_changed();
171 void mDrawInsideCheckBox_stateChanged( int state );
172 void patternOffsetUnitChanged();
173
174 private:
175 std::shared_ptr<QgsLineSymbol> mAssistantPreviewSymbol;
176};
177
179
180#include "ui_widget_simplemarker.h"
181
183
189class GUI_EXPORT QgsSimpleMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleMarker
190{
191 Q_OBJECT
192
193 public:
199 QgsSimpleMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
201
207
208 // from base class
209 void setSymbolLayer( QgsSymbolLayer *layer ) override;
210 QgsSymbolLayer *symbolLayer() override;
211
212 public slots:
213
214 void setColorStroke( const QColor &color );
215 void setColorFill( const QColor &color );
216
217 protected:
219
220 private slots:
221 void setSize();
222 void setAngle();
223 void setOffset();
224 void mSizeUnitWidget_changed();
225 void mOffsetUnitWidget_changed();
226 void mStrokeWidthUnitWidget_changed();
227 void mStrokeStyleComboBox_currentIndexChanged( int index );
228 void mStrokeWidthSpinBox_valueChanged( double d );
229 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
230 void mVerticalAnchorComboBox_currentIndexChanged( int index );
231 void setShape();
232 void updateAssistantSymbol();
233 void penJoinStyleChanged();
234 void penCapStyleChanged();
235
236 private:
237 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
238};
239
241
242#include "ui_widget_simplefill.h"
243
245
251class GUI_EXPORT QgsSimpleFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSimpleFill
252{
253 Q_OBJECT
254
255 public:
261 QgsSimpleFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
262
268
269 // from base class
270 void setSymbolLayer( QgsSymbolLayer *layer ) override;
271 QgsSymbolLayer *symbolLayer() override;
272
273 public slots:
274 void setColor( const QColor &color );
275 void setStrokeColor( const QColor &color );
276
277 protected:
279
280 private slots:
281 void setBrushStyle();
282 void strokeWidthChanged();
283 void strokeStyleChanged();
284 void offsetChanged();
285 void mStrokeWidthUnitWidget_changed();
286 void mOffsetUnitWidget_changed();
287};
288
289
291
292#include "ui_widget_filledmarker.h"
293
295
301class GUI_EXPORT QgsFilledMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledMarker
302{
303 Q_OBJECT
304
305 public:
311 QgsFilledMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
313
319
320 // from base class
321 void setSymbolLayer( QgsSymbolLayer *layer ) override;
322 QgsSymbolLayer *symbolLayer() override;
323
324 protected:
326
327 private slots:
328
329 void updateAssistantSymbol();
330 void setShape();
331 void setSize();
332 void setAngle();
333 void setOffset();
334 void mSizeUnitWidget_changed();
335 void mOffsetUnitWidget_changed();
336 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
337 void mVerticalAnchorComboBox_currentIndexChanged( int index );
338
339 private:
340 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
341};
342
344
345#include "ui_widget_gradientfill.h"
346
348
354class GUI_EXPORT QgsGradientFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientFill
355{
356 Q_OBJECT
357
358 public:
364 QgsGradientFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
365
371
372 // from base class
373 void setSymbolLayer( QgsSymbolLayer *layer ) override;
374 QgsSymbolLayer *symbolLayer() override;
375
376 public slots:
377 void setColor( const QColor &color );
378 void setColor2( const QColor &color );
379
383 void applyColorRamp();
384 void setGradientType( int index );
385 void setCoordinateMode( int index );
386 void setGradientSpread( int index );
387
388 protected:
390
391 private slots:
392 void offsetChanged();
393 void referencePointChanged();
394 void mOffsetUnitWidget_changed();
395 void colorModeChanged();
396 void mSpinAngle_valueChanged( double value );
397};
398
400
401#include "ui_widget_shapeburstfill.h"
402
404
410class GUI_EXPORT QgsShapeburstFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetShapeburstFill
411{
412 Q_OBJECT
413
414 public:
421
427
428 // from base class
429 void setSymbolLayer( QgsSymbolLayer *layer ) override;
430 QgsSymbolLayer *symbolLayer() override;
431
432 public slots:
433 void setColor( const QColor &color );
434 void setColor2( const QColor &color );
435
436 protected:
438
439 private slots:
440 void colorModeChanged();
441 void mSpinBlurRadius_valueChanged( int value );
442 void mSpinMaxDistance_valueChanged( double value );
443 void mDistanceUnitWidget_changed();
444 void mRadioUseWholeShape_toggled( bool value );
445 void applyColorRamp();
446 void offsetChanged();
447 void mOffsetUnitWidget_changed();
448 void mIgnoreRingsCheckBox_stateChanged( int state );
449};
450
452
453#include "ui_widget_templatedline.h"
454
457
464class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
465{
466 Q_OBJECT
467
468 public:
473 {
474 Hash,
475 Marker
476 };
477
484 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
485
486 void setSymbolLayer( QgsSymbolLayer *layer ) override;
487 QgsSymbolLayer *symbolLayer() override;
488 void setContext( const QgsSymbolWidgetContext &context ) override;
489
490 public slots:
491
496 void setInterval( double val );
497
502 void setOffsetAlongLine( double val );
503
504 private slots:
505
506 void setHashLength( double val );
507 void setHashAngle( double val );
508
509 void setRotate();
510 void setOffset();
511 void setPlacement();
512 void mIntervalUnitWidget_changed();
513 void mOffsetUnitWidget_changed();
514 void mOffsetAlongLineUnitWidget_changed();
515 void hashLengthUnitWidgetChanged();
516 void averageAngleUnitChanged();
517 void blankSegmentsUnitChanged();
518 void setAverageAngle( double val );
519 void toggleMapToolEditBlankSegments( bool toggled );
520
521 void updateBlankSegmentsWidget();
522
523 private:
524 // Returns blank segments field index, -1 if no dd property field has been set
525 int blankSegmentsFieldIndex() const;
526
527 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
528 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
530};
531
538{
539 Q_OBJECT
540
541 public:
547 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
548
554};
555
563{
564 Q_OBJECT
565
566 public:
572 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
573
579};
580
582
583#include "ui_widget_svgmarker.h"
584
586
592class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
593{
594 Q_OBJECT
595
596 public:
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 5: 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:
686 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
687
693
694 // from base class
695 void setSymbolLayer( QgsSymbolLayer *layer ) override;
696 QgsSymbolLayer *symbolLayer() override;
697 void setContext( const QgsSymbolWidgetContext &context ) override;
698
699 protected:
701
702 private slots:
703 void imageSourceChanged( const QString &text );
704 void mSizeUnitWidget_changed();
705 void mOffsetUnitWidget_changed();
706 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
707 void mVerticalAnchorComboBox_currentIndexChanged( int index );
708 void setWidth();
709 void setHeight();
710 void setLockAspectRatio( bool locked );
711 void setAngle();
712 void setOffset();
713 void setOpacity( double value );
714 void updatePreviewImage();
715};
716
717
719
720#include "ui_widget_animatedmarker.h"
721
723
730class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
731{
732 Q_OBJECT
733
734 public:
741
747
748 // from base class
749 void setSymbolLayer( QgsSymbolLayer *layer ) override;
750 QgsSymbolLayer *symbolLayer() override;
751 void setContext( const QgsSymbolWidgetContext &context ) override;
752
753 protected:
755
756 private slots:
757 void imageSourceChanged( const QString &text );
758 void mSizeUnitWidget_changed();
759 void mOffsetUnitWidget_changed();
760 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
761 void mVerticalAnchorComboBox_currentIndexChanged( int index );
762 void setWidth();
763 void setHeight();
764 void setLockAspectRatio( bool locked );
765 void setAngle();
766 void setOffset();
767 void setOpacity( double value );
768 void updatePreviewImage();
769
770 private:
771 QMovie *mPreviewMovie = nullptr;
772};
773
774
776
777#include "ui_widget_rasterfill.h"
778
780
786class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
787{
788 Q_OBJECT
789
790 public:
796 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
797
803
804 // from base class
805 void setSymbolLayer( QgsSymbolLayer *layer ) override;
806 QgsSymbolLayer *symbolLayer() override;
807
808 protected:
810
811 private slots:
812 void imageSourceChanged( const QString &text );
813 void setCoordinateMode( int index );
814 void opacityChanged( double value );
815 void offsetChanged();
816 void mOffsetUnitWidget_changed();
817 void mRotationSpinBox_valueChanged( double d );
818
819 private:
820 void updatePreviewImage();
821};
822
823
825
826#include "ui_widget_rasterline.h"
827
829
836class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
837{
838 Q_OBJECT
839
840 public:
846 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
847
853
854 // from base class
855 void setSymbolLayer( QgsSymbolLayer *layer ) override;
856 QgsSymbolLayer *symbolLayer() override;
857
858 protected:
860
861 private slots:
862 void imageSourceChanged( const QString &text );
863 void updatePreviewImage();
864};
865
866
868
869#include "ui_widget_gradientline.h"
870
872
879class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
880{
881 Q_OBJECT
882
883 public:
889 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
890
896
897 // from base class
898 void setSymbolLayer( QgsSymbolLayer *layer ) override;
899 QgsSymbolLayer *symbolLayer() override;
900
901 protected:
903};
904
905
907
908#include "ui_widget_filledline.h"
909
911
918class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
919{
920 Q_OBJECT
921
922 public:
928 QgsFilledLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
929
931
937
938 void setSymbolLayer( QgsSymbolLayer *layer ) override;
939 QgsSymbolLayer *symbolLayer() override;
940
941 private:
942 QgsFilledLineSymbolLayer *mLayer = nullptr;
943};
944
945
947
948#include "ui_widget_svgfill.h"
949
951
957class GUI_EXPORT QgsSVGFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSVGFill
958{
959 Q_OBJECT
960
961 public:
967 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
968
974
975 // from base class
976 void setSymbolLayer( QgsSymbolLayer *layer ) override;
977 QgsSymbolLayer *symbolLayer() override;
978 void setContext( const QgsSymbolWidgetContext &context ) override;
979
980 protected:
982
989 void updateParamGui( bool resetValues = true );
990
991 private slots:
992 void mTextureWidthSpinBox_valueChanged( double d );
993 void svgSourceChanged( const QString &text );
994 void setFile( const QString &name );
995 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
996 void mRotationSpinBox_valueChanged( double d );
997 void mChangeColorButton_colorChanged( const QColor &color );
998 void mChangeStrokeColorButton_colorChanged( const QColor &color );
999 void mStrokeWidthSpinBox_valueChanged( double d );
1000 void mTextureWidthUnitWidget_changed();
1001 void mSvgStrokeWidthUnitWidget_changed();
1002};
1003
1005
1006#include "ui_widget_linepatternfill.h"
1007
1009
1015class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1016{
1017 Q_OBJECT
1018
1019 public:
1026
1032
1033 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1034 QgsSymbolLayer *symbolLayer() override;
1035
1036 protected:
1038
1039 private slots:
1040 void mAngleSpinBox_valueChanged( double d );
1041 void mDistanceSpinBox_valueChanged( double d );
1042 void mOffsetSpinBox_valueChanged( double d );
1043 void mDistanceUnitWidget_changed();
1044 void mOffsetUnitWidget_changed();
1045};
1046
1048
1049#include "ui_widget_pointpatternfill.h"
1050
1052
1058class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1059{
1060 Q_OBJECT
1061
1062 public:
1069
1075
1076 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1077 QgsSymbolLayer *symbolLayer() override;
1078
1079 protected:
1081
1082 private slots:
1083 void mHorizontalDistanceSpinBox_valueChanged( double d );
1084 void mVerticalDistanceSpinBox_valueChanged( double d );
1085 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1086 void mVerticalDisplacementSpinBox_valueChanged( double d );
1087 void mHorizontalOffsetSpinBox_valueChanged( double d );
1088 void mVerticalOffsetSpinBox_valueChanged( double d );
1089 void mHorizontalDistanceUnitWidget_changed();
1090 void mVerticalDistanceUnitWidget_changed();
1091 void mHorizontalDisplacementUnitWidget_changed();
1092 void mVerticalDisplacementUnitWidget_changed();
1093 void mHorizontalOffsetUnitWidget_changed();
1094 void mVerticalOffsetUnitWidget_changed();
1095};
1096
1097
1099
1100#include "ui_widget_randommarkerfill.h"
1101
1103
1111class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1112{
1113 Q_OBJECT
1114
1115 public:
1122
1128
1129 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1130 QgsSymbolLayer *symbolLayer() override;
1131
1132 private:
1133 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1134
1135 private slots:
1136
1137 void countMethodChanged( int );
1138 void countChanged( int d );
1139 void densityAreaChanged( double d );
1140 void densityAreaUnitChanged();
1141 void seedChanged( int d );
1142};
1143
1145
1146#include "ui_widget_fontmarker.h"
1147
1149class CharacterWidget;
1150
1156class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1157{
1158 Q_OBJECT
1159
1160 public:
1166 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1168
1174
1175 // from base class
1176 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1177 QgsSymbolLayer *symbolLayer() override;
1178
1179 public slots:
1180 void setFontFamily( const QFont &font );
1181 void setColor( const QColor &color );
1182
1186 void setColorStroke( const QColor &color );
1187 void setSize( double size );
1188 void setAngle( double angle );
1189
1194 void setCharacter( QChar chr );
1195
1201 void setCharacterFromText( const QString &text );
1202
1203 protected:
1206
1207 private slots:
1208
1213 void setFontStyle( const QString &style );
1214
1215 void setOffset();
1216 void mSizeUnitWidget_changed();
1217 void mOffsetUnitWidget_changed();
1218 void mStrokeWidthUnitWidget_changed();
1219 void mStrokeWidthSpinBox_valueChanged( double d );
1220
1221 void populateFontStyleComboBox();
1222 void mFontStyleComboBox_currentIndexChanged( int index );
1223
1224 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1225 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1226 void penJoinStyleChanged();
1227 void updateAssistantSymbol();
1228
1229 private:
1230 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1231
1232 QFont mRefFont;
1233 QFontDatabase mFontDB;
1234};
1235
1237
1238
1239#include "ui_widget_centroidfill.h"
1240
1242
1248class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1249{
1250 Q_OBJECT
1251
1252 public:
1258 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1259
1265
1266 // from base class
1267 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1268 QgsSymbolLayer *symbolLayer() override;
1269
1270 protected:
1272
1273 private slots:
1274 void mDrawInsideCheckBox_stateChanged( int state );
1275 void mDrawAllPartsCheckBox_stateChanged( int state );
1276 void mClipPointsCheckBox_stateChanged( int state );
1277 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1278};
1279
1280
1282
1283#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1284
1286
1293class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1294{
1295 Q_OBJECT
1296
1297 public:
1302
1304
1310
1311 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1312 QgsSymbolLayer *symbolLayer() override;
1313 void setContext( const QgsSymbolWidgetContext &context ) override;
1314
1315 private slots:
1316 void changeNumberFormat();
1317
1318 private:
1319 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1320 bool mBlockChangesSignal = false;
1321};
1322
1323
1324#include "ui_qgsgeometrygeneratorwidgetbase.h"
1325#include "qgis_gui.h"
1326
1328
1334class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1335{
1336 Q_OBJECT
1337
1338 public:
1345
1350
1351 // from base class
1352 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1353 QgsSymbolLayer *symbolLayer() override;
1354
1355 private:
1356 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1357 int mBlockSignals = 0;
1358
1359 private slots:
1360 void updateExpression( const QString &string );
1361 void updateSymbolType();
1362};
1363
1364#endif
A widget for displaying characters available in a preset font, and allowing users to select an indivi...
Keeps a pointer to a QObject and deletes it whenever this object is deleted.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsAnimatedMarkerSymbolLayerWidget.
QgsAnimatedMarkerSymbolLayer * mLayer
QgsAnimatedMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsAnimatedMarkerSymbolLayerWidget.
Animated marker symbol layer class.
QgsCentroidFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsCentroidFillSymbolLayerWidget.
QgsCentroidFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsCentroidFillSymbolLayerWidget.
A fill symbol layer which renders a marker symbol at the centroid of a polygon geometry.
Abstract interface for generating an expression context.
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
~QgsFilledLineSymbolLayerWidget() override
QgsFilledLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFilledLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledLineSymbolLayerWidget.
A line symbol layer type which fills a stroked line with a QgsFillSymbol.
QgsFilledMarkerSymbolLayer * mLayer
QgsFilledMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFilledMarkerSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFilledMarkerSymbolLayerWidget.
Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol.
QgsFontMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsFontMarkerSymbolLayerWidget.
~QgsFontMarkerSymbolLayerWidget() override
QgsFontMarkerSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsFontMarkerSymbolLayerWidget.
A marker symbol layer which displays characters rendered using a font.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Will be registered as factory.
QgsGeometryGeneratorSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsGeometryGeneratorSymbolLayerWidget.
A symbol layer subclass which alters rendered feature shapes through the use of QGIS expressions.
QgsGradientFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsGradientFillSymbolLayerWidget.
QgsGradientFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsGradientFillSymbolLayerWidget.
A fill symbol layer which draws a smooth color gradient over a polygon.
QgsHashedLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsHashedLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsHashedLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinePatternFillSymbolLayerWidget.
QgsLinePatternFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLinePatternFillSymbolLayerWidget.
QgsLinePatternFillSymbolLayer * mLayer
A symbol fill consisting of repeated parallel lines.
A line symbol type, for rendering LineString and MultiLineString geometries.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLinearReferencingSymbolLayerWidget.
QgsLinearReferencingSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLinearReferencingSymbolLayerWidget.
Line symbol layer used for decorating according to linear referencing.
QgsLineburstSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsLineburstSymbolLayerWidget.
QgsLineburstSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsLineburstSymbolLayerWidget.
Line symbol layer type which draws a gradient pattern perpendicularly along a line.
Map tool base class to edit blank segments.
Specializes the map tool to edit blank segments given the targeted symbol layer type (QgsMarkerLineSy...
QgsMarkerLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsMarkerLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsMarkerLineSymbolLayerWidget.
A marker symbol type, for rendering Point and MultiPoint geometries.
QgsPointPatternFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsPointPatternFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsPointPatternFillSymbolLayerWidget.
QgsPointPatternFillSymbolLayer * mLayer
A fill symbol layer which fills polygon shapes with repeating marker symbols.
A button for controlling property overrides which may apply to a widget.
QgsRandomMarkerFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRandomMarkerFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRandomMarkerFillSymbolLayerWidget.
A fill symbol layer which places markers at random locations within polygons.
QgsRasterFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterFillSymbolLayerWidget.
QgsRasterFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated raster image.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterLineSymbolLayerWidget.
QgsRasterLineSymbolLayer * mLayer
QgsRasterLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterLineSymbolLayerWidget.
Line symbol layer type which draws line sections using a raster image file.
QgsRasterMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsRasterMarkerSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsRasterMarkerSymbolLayerWidget.
QgsRasterMarkerSymbolLayer * mLayer
Raster marker symbol layer class.
QgsSVGFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSVGFillSymbolLayerWidget.
void updateParamGui(bool resetValues=true)
Enables or disables svg fill color, stroke color and stroke width based on whether the svg file suppo...
QgsSVGFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSVGFillSymbolLayerWidget.
A fill symbol layer which fills polygons with a repeated SVG file.
QgsShapeburstFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsShapeburstFillSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsShapeburstFillSymbolLayerWidget.
QgsShapeburstFillSymbolLayer * mLayer
A fill symbol layer which applies a gradient from the outer edges of a symbol to the inside.
QgsSimpleFillSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleFillSymbolLayerWidget.
QgsSimpleFillSymbolLayer * mLayer
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleFillSymbolLayerWidget.
Renders polygons using a single fill and stroke color.
~QgsSimpleLineSymbolLayerWidget() override
QgsSimpleLineSymbolLayer * mLayer
QgsSimpleLineSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleLineSymbolLayerWidget.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleLineSymbolLayerWidget.
void resizeEvent(QResizeEvent *event) override
A simple line symbol layer, which renders lines using a line in a variety of styles (e....
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSimpleMarkerSymbolLayerWidget.
QgsSimpleMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSimpleMarkerSymbolLayerWidget.
QgsSimpleMarkerSymbolLayer * mLayer
Simple marker symbol layer, consisting of a rendered shape with solid fill color and a stroke.
Q_DECL_DEPRECATED void populateList()
This method does nothing anymore, the loading is automatic.
static QgsSymbolLayerWidget * create(QgsVectorLayer *vl)
Creates a new QgsSvgMarkerSymbolLayerWidget.
QgsSvgMarkerSymbolLayer * mLayer
QgsSvgMarkerSymbolLayerWidget(QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsSvgMarkerSymbolLayerWidget.
~QgsSvgMarkerSymbolLayerWidget() override
A marker symbol layer which renders an SVG graphic.
Abstract base class for widgets used to configure QgsSymbolLayer classes.
QgsVectorLayer * vectorLayer() const
Returns the vector layer associated with the widget.
QgsSymbolLayerWidget(QWidget *parent, QgsVectorLayer *vl=nullptr)
Constructor for QgsSymbolLayerWidget.
virtual void setSymbolLayer(QgsSymbolLayer *layer)=0
void changed()
Should be emitted whenever configuration changes happened on this symbol layer configuration.
void symbolChanged()
Should be emitted whenever the sub symbol changed on this symbol layer configuration.
virtual void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the symbol widget is shown, e.g., the associated map canvas and expression ...
virtual QgsSymbolLayer * symbolLayer()=0
QgsSymbolWidgetContext context() const
Returns the context in which the symbol widget is shown, e.g., the associated map canvas and expressi...
Abstract base class for symbol layers.
Property
Data definable properties.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
Base class for templated line symbols, e.g.
A widget for controlling the properties of a templated line symbol layer (hash or markers).
QgsTemplatedLineSymbolLayerWidget(TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent=nullptr)
Constructor for QgsTemplatedLineSymbolLayerWidget.
Represents a vector layer which manages a vector based dataset.
#define SIP_DEPRECATED
Definition qgis_sip.h:113
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:52
#define SIP_FACTORY
Definition qgis_sip.h:83