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 );
226 void emitSymbolModified();
228 void updateListIcons();
244 void updateLockButton();
246 void updateLockButtonIcon();
248 SymbolLayerItem *currentLayerItem();
260 void moveLayerByOffset(
int offset );
266 void setWidget( QWidget *widget );
271 QMenu *mAdvancedMenu =
nullptr;
272 QAction *mLockColorAction =
nullptr;
273 QAction *mLockSelectionColorAction =
nullptr;
276 QStandardItemModel *mSymbolLayersModel =
nullptr;
277 QWidget *mPresentWidget =
nullptr;
279 std::unique_ptr<DataDefinedRestorer> mDataDefineRestorer;
283 bool mBlockModified = false;
392 void updateLockButton();
394 SymbolLayerItem *currentLayerItem();
398 void moveLayerByOffset(
int offset );
400 void setWidget( QWidget *widget );
403 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.