QGIS API Documentation 4.1.0-Master (31622b25bb0)
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 QPointer<QgsVectorLayer> mVectorLayer;
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
459
466class GUI_EXPORT QgsTemplatedLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetTemplatedLine
467{
468 Q_OBJECT
469
470 public:
475 {
476 Hash,
477 Marker
478 };
479
486 QgsTemplatedLineSymbolLayerWidget( TemplatedSymbolType symbolType, QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
487
488 bool event( QEvent *e ) override;
489
491
492 void setSymbolLayer( QgsSymbolLayer *layer ) override;
493 QgsSymbolLayer *symbolLayer() override;
494 void setContext( const QgsSymbolWidgetContext &context ) override;
495
496 public slots:
497
502 void setInterval( double val );
503
508 void setOffsetAlongLine( double val );
509
510 private slots:
511
512 void setHashLength( double val );
513 void setHashAngle( double val );
514
515 void setRotate();
516 void setOffset();
517 void setPlacement();
518 void mIntervalUnitWidget_changed();
519 void mOffsetUnitWidget_changed();
520 void mOffsetAlongLineUnitWidget_changed();
521 void hashLengthUnitWidgetChanged();
522 void averageAngleUnitChanged();
523 void blankSegmentsUnitChanged();
524 void setAverageAngle( double val );
525 void toggleMapToolEditBlankSegments( bool toggled );
526 void toggleMapToolAddExtraItem( bool toggled );
527 void toggleMapToolModifyExtraItem( bool toggled );
528 void updatePerFeatureCustomizationWidget();
529
530 private:
531 QgsTemplatedLineSymbolLayerBase *mLayer = nullptr;
532 TemplatedSymbolType mSymbolType = TemplatedSymbolType::Hash;
534 QObjectUniquePtr<QgsMapToolAddExtraItem> mMapToolAddExtraItem;
535 QObjectUniquePtr<QgsMapToolModifyExtraItems> mMapToolModifyExtraItem;
536};
537
544{
545 Q_OBJECT
546
547 public:
553 QgsMarkerLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
554
560};
561
569{
570 Q_OBJECT
571
572 public:
578 QgsHashedLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
579
585};
586
588
589#include "ui_widget_svgmarker.h"
590
592
598class GUI_EXPORT QgsSvgMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetSvgMarker
599{
600 Q_OBJECT
601
602 public:
608 QgsSvgMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
610
616
617 // from base class
618 void setSymbolLayer( QgsSymbolLayer *layer ) override;
619 QgsSymbolLayer *symbolLayer() override;
620
621 void setContext( const QgsSymbolWidgetContext &context ) override;
622
623 public slots:
625 void setSvgPath( const QString &name );
627 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
628
629
630 protected:
631 // TODO QGIS 5: remove
632
637 Q_DECL_DEPRECATED void populateList() SIP_DEPRECATED {}
638
645 void setGuiForSvg( const QgsSvgMarkerSymbolLayer *layer, bool skipDefaultColors = false );
646
648
649 private slots:
650 void svgSourceChanged( const QString &text );
651 void mChangeColorButton_colorChanged( const QColor &color );
652 void mChangeStrokeColorButton_colorChanged( const QColor &color );
653 void mStrokeWidthSpinBox_valueChanged( double d );
654 void mSizeUnitWidget_changed();
655 void mStrokeWidthUnitWidget_changed();
656 void mOffsetUnitWidget_changed();
657 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
658 void mVerticalAnchorComboBox_currentIndexChanged( int index );
659 void setWidth();
660 void setHeight();
661 void lockAspectRatioChanged( bool locked );
662 void setAngle();
663 void setOffset();
664 void updateAssistantSymbol();
665
666 private:
667 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
668};
669
671
672#include "ui_widget_rastermarker.h"
673
675
682class GUI_EXPORT QgsRasterMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterMarker
683{
684 Q_OBJECT
685
686 public:
692 QgsRasterMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
693
699
700 // from base class
701 void setSymbolLayer( QgsSymbolLayer *layer ) override;
702 QgsSymbolLayer *symbolLayer() override;
703 void setContext( const QgsSymbolWidgetContext &context ) override;
704
705 protected:
707
708 private slots:
709 void imageSourceChanged( const QString &text );
710 void mSizeUnitWidget_changed();
711 void mOffsetUnitWidget_changed();
712 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
713 void mVerticalAnchorComboBox_currentIndexChanged( int index );
714 void setWidth();
715 void setHeight();
716 void setLockAspectRatio( bool locked );
717 void setAngle();
718 void setOffset();
719 void setOpacity( double value );
720 void updatePreviewImage();
721};
722
723
725
726#include "ui_widget_animatedmarker.h"
727
729
736class GUI_EXPORT QgsAnimatedMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetAnimatedMarker
737{
738 Q_OBJECT
739
740 public:
747
753
754 // from base class
755 void setSymbolLayer( QgsSymbolLayer *layer ) override;
756 QgsSymbolLayer *symbolLayer() override;
757 void setContext( const QgsSymbolWidgetContext &context ) override;
758
759 protected:
761
762 private slots:
763 void imageSourceChanged( const QString &text );
764 void mSizeUnitWidget_changed();
765 void mOffsetUnitWidget_changed();
766 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
767 void mVerticalAnchorComboBox_currentIndexChanged( int index );
768 void setWidth();
769 void setHeight();
770 void setLockAspectRatio( bool locked );
771 void setAngle();
772 void setOffset();
773 void setOpacity( double value );
774 void updatePreviewImage();
775
776 private:
777 QMovie *mPreviewMovie = nullptr;
778};
779
780
782
783#include "ui_widget_rasterfill.h"
784
786
792class GUI_EXPORT QgsRasterFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterFill
793{
794 Q_OBJECT
795
796 public:
802 QgsRasterFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
803
809
810 // from base class
811 void setSymbolLayer( QgsSymbolLayer *layer ) override;
812 QgsSymbolLayer *symbolLayer() override;
813
814 protected:
816
817 private slots:
818 void imageSourceChanged( const QString &text );
819 void setCoordinateMode( int index );
820 void opacityChanged( double value );
821 void offsetChanged();
822 void mOffsetUnitWidget_changed();
823 void mRotationSpinBox_valueChanged( double d );
824
825 private:
826 void updatePreviewImage();
827};
828
829
831
832#include "ui_widget_rasterline.h"
833
835
842class GUI_EXPORT QgsRasterLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRasterLine
843{
844 Q_OBJECT
845
846 public:
852 QgsRasterLineSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
853
859
860 // from base class
861 void setSymbolLayer( QgsSymbolLayer *layer ) override;
862 QgsSymbolLayer *symbolLayer() override;
863
864 protected:
866
867 private slots:
868 void imageSourceChanged( const QString &text );
869 void updatePreviewImage();
870};
871
872
874
875#include "ui_widget_gradientline.h"
876
878
885class GUI_EXPORT QgsLineburstSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetGradientLine
886{
887 Q_OBJECT
888
889 public:
895 QgsLineburstSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
896
902
903 // from base class
904 void setSymbolLayer( QgsSymbolLayer *layer ) override;
905 QgsSymbolLayer *symbolLayer() override;
906
907 protected:
909};
910
911
913
914#include "ui_widget_filledline.h"
915
917
924class GUI_EXPORT QgsFilledLineSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFilledLine
925{
926 Q_OBJECT
927
928 public:
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:
973 QgsSVGFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
974
980
981 // from base class
982 void setSymbolLayer( QgsSymbolLayer *layer ) override;
983 QgsSymbolLayer *symbolLayer() override;
984 void setContext( const QgsSymbolWidgetContext &context ) override;
985
986 protected:
988
995 void updateParamGui( bool resetValues = true );
996
997 private slots:
998 void mTextureWidthSpinBox_valueChanged( double d );
999 void svgSourceChanged( const QString &text );
1000 void setFile( const QString &name );
1001 void setSvgParameters( const QMap<QString, QgsProperty> &parameters );
1002 void mRotationSpinBox_valueChanged( double d );
1003 void mChangeColorButton_colorChanged( const QColor &color );
1004 void mChangeStrokeColorButton_colorChanged( const QColor &color );
1005 void mStrokeWidthSpinBox_valueChanged( double d );
1006 void mTextureWidthUnitWidget_changed();
1007 void mSvgStrokeWidthUnitWidget_changed();
1008};
1009
1011
1012#include "ui_widget_linepatternfill.h"
1013
1015
1021class GUI_EXPORT QgsLinePatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetLinePatternFill
1022{
1023 Q_OBJECT
1024
1025 public:
1032
1038
1039 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1040 QgsSymbolLayer *symbolLayer() override;
1041
1042 protected:
1044
1045 private slots:
1046 void mAngleSpinBox_valueChanged( double d );
1047 void mDistanceSpinBox_valueChanged( double d );
1048 void mOffsetSpinBox_valueChanged( double d );
1049 void mDistanceUnitWidget_changed();
1050 void mOffsetUnitWidget_changed();
1051};
1052
1054
1055#include "ui_widget_pointpatternfill.h"
1056
1058
1064class GUI_EXPORT QgsPointPatternFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetPointPatternFill
1065{
1066 Q_OBJECT
1067
1068 public:
1075
1081
1082 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1083 QgsSymbolLayer *symbolLayer() override;
1084
1085 protected:
1087
1088 private slots:
1089 void mHorizontalDistanceSpinBox_valueChanged( double d );
1090 void mVerticalDistanceSpinBox_valueChanged( double d );
1091 void mHorizontalDisplacementSpinBox_valueChanged( double d );
1092 void mVerticalDisplacementSpinBox_valueChanged( double d );
1093 void mHorizontalOffsetSpinBox_valueChanged( double d );
1094 void mVerticalOffsetSpinBox_valueChanged( double d );
1095 void mHorizontalDistanceUnitWidget_changed();
1096 void mVerticalDistanceUnitWidget_changed();
1097 void mHorizontalDisplacementUnitWidget_changed();
1098 void mVerticalDisplacementUnitWidget_changed();
1099 void mHorizontalOffsetUnitWidget_changed();
1100 void mVerticalOffsetUnitWidget_changed();
1101};
1102
1103
1105
1106#include "ui_widget_randommarkerfill.h"
1107
1109
1117class GUI_EXPORT QgsRandomMarkerFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetRandomMarkerFill
1118{
1119 Q_OBJECT
1120
1121 public:
1128
1134
1135 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1136 QgsSymbolLayer *symbolLayer() override;
1137
1138 private:
1139 QgsRandomMarkerFillSymbolLayer *mLayer = nullptr;
1140
1141 private slots:
1142
1143 void countMethodChanged( int );
1144 void countChanged( int d );
1145 void densityAreaChanged( double d );
1146 void densityAreaUnitChanged();
1147 void seedChanged( int d );
1148};
1149
1151
1152#include "ui_widget_fontmarker.h"
1153
1155class CharacterWidget;
1156
1162class GUI_EXPORT QgsFontMarkerSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetFontMarker
1163{
1164 Q_OBJECT
1165
1166 public:
1172 QgsFontMarkerSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1174
1180
1181 // from base class
1182 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1183 QgsSymbolLayer *symbolLayer() override;
1184
1185 public slots:
1186 void setFontFamily( const QFont &font );
1187 void setColor( const QColor &color );
1188
1192 void setColorStroke( const QColor &color );
1193 void setSize( double size );
1194 void setAngle( double angle );
1195
1200 void setCharacter( QChar chr );
1201
1207 void setCharacterFromText( const QString &text );
1208
1209 protected:
1212
1213 private slots:
1214
1219 void setFontStyle( const QString &style );
1220
1221 void setOffset();
1222 void mSizeUnitWidget_changed();
1223 void mOffsetUnitWidget_changed();
1224 void mStrokeWidthUnitWidget_changed();
1225 void mStrokeWidthSpinBox_valueChanged( double d );
1226
1227 void populateFontStyleComboBox();
1228 void mFontStyleComboBox_currentIndexChanged( int index );
1229
1230 void mHorizontalAnchorComboBox_currentIndexChanged( int index );
1231 void mVerticalAnchorComboBox_currentIndexChanged( int index );
1232 void penJoinStyleChanged();
1233 void updateAssistantSymbol();
1234
1235 private:
1236 std::shared_ptr<QgsMarkerSymbol> mAssistantPreviewSymbol;
1237
1238 QFont mRefFont;
1239 QFontDatabase mFontDB;
1240};
1241
1243
1244
1245#include "ui_widget_centroidfill.h"
1246
1248
1254class GUI_EXPORT QgsCentroidFillSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::WidgetCentroidFill
1255{
1256 Q_OBJECT
1257
1258 public:
1264 QgsCentroidFillSymbolLayerWidget( QgsVectorLayer *vl, QWidget *parent SIP_TRANSFERTHIS = nullptr );
1265
1271
1272 // from base class
1273 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1274 QgsSymbolLayer *symbolLayer() override;
1275
1276 protected:
1278
1279 private slots:
1280 void mDrawInsideCheckBox_stateChanged( int state );
1281 void mDrawAllPartsCheckBox_stateChanged( int state );
1282 void mClipPointsCheckBox_stateChanged( int state );
1283 void mClipOnCurrentPartOnlyCheckBox_stateChanged( int state );
1284};
1285
1286
1288
1289#include "ui_qgslinearreferencingsymbollayerwidgetbase.h"
1290
1292
1299class GUI_EXPORT QgsLinearReferencingSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::QgsLinearReferencingSymbolLayerWidgetBase
1300{
1301 Q_OBJECT
1302
1303 public:
1308
1310
1316
1317 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1318 QgsSymbolLayer *symbolLayer() override;
1319 void setContext( const QgsSymbolWidgetContext &context ) override;
1320
1321 private slots:
1322 void changeNumberFormat();
1323
1324 private:
1325 QgsLinearReferencingSymbolLayer *mLayer = nullptr;
1326 bool mBlockChangesSignal = false;
1327};
1328
1329
1330#include "ui_qgsgeometrygeneratorwidgetbase.h"
1331#include "qgis_gui.h"
1332
1334
1340class GUI_EXPORT QgsGeometryGeneratorSymbolLayerWidget : public QgsSymbolLayerWidget, private Ui::GeometryGeneratorWidgetBase
1341{
1342 Q_OBJECT
1343
1344 public:
1351
1356
1357 // from base class
1358 void setSymbolLayer( QgsSymbolLayer *layer ) override;
1359 QgsSymbolLayer *symbolLayer() override;
1360
1361 private:
1362 QgsGeometryGeneratorSymbolLayer *mLayer = nullptr;
1363 int mBlockSignals = 0;
1364
1365 private slots:
1366 void updateExpression( const QString &string );
1367 void updateSymbolType();
1368};
1369
1370#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 to add extra items for a giving vector layer and symbol layer.
Map tool base class to edit blank segments.
Specializes the map tool to edit blank segments given the targeted symbol layer type (QgsMarkerLineSy...
Map tool to select and modify extra items for a giving vector layer and symbol layer.
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