16#ifndef QGSSYMBOLSELECTORDIALOG_H
17#define QGSSYMBOLSELECTORDIALOG_H
19#include "ui_qgssymbolselectordialogbase.h"
29#include <QDialogButtonBox>
31#include <QStandardItemModel>
52class DataDefinedRestorer :
public QObject
56 DataDefinedRestorer( QgsSymbol *symbol,
const QgsSymbolLayer *symbolLayer );
62 QgsMarkerSymbol *mMarker =
nullptr;
63 const QgsMarkerSymbolLayer *mMarkerSymbolLayer =
nullptr;
66 QPointF mMarkerOffset;
70 QgsLineSymbol *mLine =
nullptr;
71 const QgsLineSymbolLayer *mLineSymbolLayer =
nullptr;
73 double mLineOffset = 0;
146 void loadSymbol(
QgsSymbol *symbol, SymbolLayerItem *parent =
nullptr )
SIP_SKIP;
153 void moveLayerDown();
178 void duplicateLayer();
189 void updateLayerPreview();
194 void updatePreview();
197 void symbolChanged();
219 void projectDataChanged();
224 void layersAboutToBeRemoved( const QList<
QgsMapLayer *> &layers );
240 void updateLockButton();
242 void updateLockButtonIcon();
244 SymbolLayerItem *currentLayerItem();
256 void moveLayerByOffset(
int offset );
262 void setWidget( QWidget *widget );
267 QMenu *mAdvancedMenu =
nullptr;
268 QAction *mLockColorAction =
nullptr;
269 QAction *mLockSelectionColorAction =
nullptr;
272 QStandardItemModel *mSymbolLayersModel =
nullptr;
273 QWidget *mPresentWidget =
nullptr;
275 std::unique_ptr<DataDefinedRestorer> mDataDefineRestorer;
279 bool mBlockModified = false;
388 void updateLockButton();
390 SymbolLayerItem *currentLayerItem();
394 void moveLayerByOffset(
int offset );
396 void setWidget( QWidget *widget );
399 QDialogButtonBox *mButtonBox =
nullptr;
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Abstract base class for line symbol layers.
A line symbol type, for rendering LineString and MultiLineString geometries.
Map canvas is a class for displaying all GIS data types on a canvas.
Base class for all map layer types.
Abstract base class for marker symbol layers.
A marker symbol type, for rendering Point and MultiPoint geometries.
A database of saved style entities, including symbols, color ramps, text formats and others.
Abstract base class for symbol layers.
A dialog that can be used to select and build a symbol.
void setContext(const QgsSymbolWidgetContext &context)
Sets the context in which the symbol widget is shown, e.g., the associated map canvas and expression ...
QgsSymbolSelectorDialog(QgsSymbol *symbol, QgsStyle *style, QgsVectorLayer *vl, QWidget *parent=nullptr, bool embedded=false)
Constructor for QgsSymbolSelectorDialog.
QgsSymbolWidgetContext context() const
Returns the context in which the symbol widget is shown, e.g., the associated map canvas and expressi...
QMenu * advancedMenu()
Returns menu for "advanced" button - create it if doesn't exist and show the advanced button.
void symbolModified()
Emitted when the symbol defined in the dialog is modified.
void symbolChanged()
Slot to update tree when a new symbol from style.
QDialogButtonBox * buttonBox() const
Returns a reference to the dialog's button box.
QgsSymbol * symbol()
Returns the symbol that is currently active in the widget.
void updateLayerPreview()
void duplicateLayer()
Duplicates the current symbol layer and places the duplicated layer above the current symbol layer.
void changeLayer(QgsSymbolLayer *layer)
Alters tree and sets proper widget when Layer Type is changed.
void loadSymbol(QgsSymbol *symbol, SymbolLayerItem *parent=nullptr)
Loads the given symbol into the widget.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
Abstract base class for all rendered symbols.
Represents a vector layer which manages a vector based dataset.