QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgssymbolslistwidget.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssymbolslistwidget.h
3 ---------------------
4 begin : June 2012
5 copyright : (C) 2012 by Arunmozhi
6 email : aruntheguy at gmail.com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSSYMBOLSLISTWIDGET_H
17#define QGSSYMBOLSLISTWIDGET_H
18
19#include "ui_widget_symbolslist.h"
20
22#include "qgsstylemodel.h"
23#include <QWidget>
24#include "qgis_gui.h"
25
26class QgsSymbol;
27class QgsStyle;
28
29class QMenu;
30
35class GUI_EXPORT QgsSymbolsListWidget : public QWidget, private Ui::SymbolsListWidget, private QgsExpressionContextGenerator
36{
37 Q_OBJECT
38
39 public:
40
49 QgsSymbolsListWidget( QgsSymbol *symbol, QgsStyle *style, QMenu *menu, QWidget *parent SIP_TRANSFERTHIS, QgsVectorLayer *layer = nullptr );
50
51
52 ~QgsSymbolsListWidget() override;
53
59 void setContext( const QgsSymbolWidgetContext &context );
60
65 QgsSymbolWidgetContext context() const;
66
70 const QgsVectorLayer *layer() const { return mLayer; }
71
72 public slots:
73
74 void setSymbolColor( const QColor &color );
75 void setMarkerAngle( double angle );
76 void setMarkerSize( double size );
77 void setLineWidth( double width );
78
79 void clipFeaturesToggled( bool checked );
80
81 void updateDataDefinedMarkerSize();
82 void updateDataDefinedMarkerAngle();
83 void updateDataDefinedLineWidth();
84
85 signals:
86 void changed();
87
88 private slots:
89 void setSymbolFromStyle( const QString &name, QgsStyle::StyleEntity type, const QString &stylePath );
90 void mSymbolUnitWidget_changed();
91 void updateAssistantSymbol();
92 void opacityChanged( double value );
93 void createAuxiliaryField();
94 void createSymbolAuxiliaryField();
95 void forceRHRToggled( bool checked );
96 void showAnimationSettings();
97 void saveSymbol();
98 void updateSymbolDataDefinedProperty();
99
100 private:
101
102 void registerSymbolDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbol::Property key );
103
104 QgsSymbol *mSymbol = nullptr;
105 std::shared_ptr< QgsSymbol > mAssistantSymbol;
106 QgsStyle *mStyle = nullptr;
107 QMenu *mAdvancedMenu = nullptr;
108 QAction *mClipFeaturesAction = nullptr;
109 QAction *mStandardizeRingsAction = nullptr;
110 QAction *mAnimationSettingsAction = nullptr;
111 QgsVectorLayer *mLayer = nullptr;
112 QgsMapCanvas *mMapCanvas = nullptr;
113
114 QgsColorButton *mSymbolColorButton = nullptr;
115 QgsOpacityWidget *mSymbolOpacityWidget = nullptr;
116 QgsUnitSelectionWidget *mSymbolUnitWidget = nullptr;
117
118 void updateSymbolColor();
119 void updateSymbolInfo();
120 QgsSymbolWidgetContext mContext;
121
123 void registerDataDefinedButton( QgsPropertyOverrideButton *button, QgsSymbolLayer::Property key );
124};
125
126#endif //QGSSYMBOLSLISTWIDGET_H
127
128
129
A cross platform button subclass for selecting colors.
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...
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:93
A widget for setting an opacity value.
A button for controlling property overrides which may apply to a widget.
StyleEntity
Enum for Entities involved in a style.
Definition: qgsstyle.h:179
Property
Data definable properties.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:94
Property
Data definable properties.
Definition: qgssymbol.h:133
const QgsVectorLayer * layer() const
Returns the vector layer associated with the widget.
A widget displaying a combobox allowing the user to choose between various display units,...
Represents a vector layer which manages a vector based data sets.
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:716
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53