19 #include <QStandardItem>
21 #include <QMessageBox>
52 if ( !abstractMetadata )
54 QgsDebugMsg(
"Failed to find symbol layer's entry in registry: " + name );
60 QgsDebugMsg(
"Failed to cast symbol layer's metadata: " + name );
67 static void _initWidgetFunctions()
69 static bool sInitialized =
false;
112 connect( mEnabledCheckBox, &QCheckBox::toggled,
this, &QgsLayerPropertiesWidget::mEnabledCheckBox_toggled );
116 _initWidgetFunctions();
130 cboLayerType->setCurrentIndex( idx );
132 connect( mEnabledCheckBox, &QAbstractButton::toggled, mEnabledDDBtn, &QWidget::setEnabled );
172 mEffectWidget->setDockMode( this->
dockMode() );
179 const auto constSymbolLayerIds = symbolLayerIds;
180 for (
const QString &symbolLayerId : constSymbolLayerIds )
186 const auto constLineLayerIds = lineLayerIds;
187 for (
const QString &lineLayerId : constLineLayerIds )
193 QString name = tr(
"Outline: %1" ).arg( visibleName );
194 cboLayerType->addItem( name, lineLayerId );
202 if ( stackedWidget->currentWidget() != pageDummy )
205 if (
QgsSymbolLayerWidget *w = qobject_cast< QgsSymbolLayerWidget * >( stackedWidget->currentWidget() ) )
207 stackedWidget->removeWidget( stackedWidget->currentWidget() );
221 stackedWidget->addWidget( w );
222 stackedWidget->setCurrentWidget( w );
230 stackedWidget->setCurrentWidget( pageDummy );
236 return *lExpressionContext;
243 if (
auto *lMapCanvas = mContext.
mapCanvas() )
249 expContext << generator->createExpressionContextScope();
266 expContext << symbolScope;
292 << QStringLiteral(
"symbol_layer_count" ) << QStringLiteral(
"symbol_layer_index" ) );
304 void QgsLayerPropertiesWidget::updateProperty()
317 QString newLayerType = cboLayerType->currentData().toString();
318 if ( layer->
layerType() == newLayerType )
342 bool paintEffectToggled =
false;
346 paintEffectToggled =
true;
349 if ( paintEffectToggled )
356 void QgsLayerPropertiesWidget::reloadLayer()
361 void QgsLayerPropertiesWidget::mEnabledCheckBox_toggled(
bool enabled )
static QgsSymbolLayerRegistry * symbolLayerRegistry()
Returns the application's symbol layer registry, used for managing symbol layers.
Abstract interface for generating an expression context scope.
Single scope for storing variables and functions for use within a QgsExpressionContext.
void addVariable(const QgsExpressionContextScope::StaticVariable &variable)
Adds a variable into the context scope.
static QgsExpressionContextScope * updateSymbolScope(const QgsSymbol *symbol, QgsExpressionContextScope *symbolScope=nullptr)
Updates a symbol scope related to a QgsSymbol to an expression context.
static QgsExpressionContextScope * projectScope(const QgsProject *project)
Creates a new scope which contains variables and functions relating to a QGIS project.
static QgsExpressionContextScope * atlasScope(const QgsLayoutAtlas *atlas)
Creates a new scope which contains variables and functions relating to a QgsLayoutAtlas.
static QgsExpressionContextScope * mapSettingsScope(const QgsMapSettings &mapSettings)
Creates a new scope which contains variables and functions relating to a QgsMapSettings object.
static QgsExpressionContextScope * layerScope(const QgsMapLayer *layer)
Creates a new scope which contains variables and functions relating to a QgsMapLayer.
static QgsExpressionContextScope * globalScope()
Creates a new scope which contains variables and functions relating to the global QGIS context.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
static const QString EXPR_GEOMETRY_PART_COUNT
Inbuilt variable name for geometry part count variable.
static const QString EXPR_GEOMETRY_POINT_COUNT
Inbuilt variable name for point count variable.
static const QString EXPR_CLUSTER_SIZE
Inbuilt variable name for cluster size variable.
static const QString EXPR_GEOMETRY_POINT_NUM
Inbuilt variable name for point number variable.
void setOriginalValueVariable(const QVariant &value)
Sets the original value variable value for the context.
static const QString EXPR_GEOMETRY_RING_NUM
Inbuilt variable name for geometry ring number variable.
static const QString EXPR_GEOMETRY_PART_NUM
Inbuilt variable name for geometry part number variable.
static const QString EXPR_SYMBOL_COLOR
Inbuilt variable name for symbol color variable.
QgsExpressionContextScope * lastScope()
Returns the last scope added to the context.
void appendScope(QgsExpressionContextScope *scope)
Appends a scope to the end of the context.
void setHighlightedVariables(const QStringList &variableNames)
Sets the list of variable names within the context intended to be highlighted to the user.
static const QString EXPR_ORIGINAL_VALUE
Inbuilt variable name for value original value variable.
static const QString EXPR_CLUSTER_COLOR
Inbuilt variable name for cluster color variable.
The QgsMapSettings class contains configuration for rendering of the map.
static QgsPaintEffect * defaultStack()
Returns a new effect stack consisting of a sensible selection of default effects.
void setEnabled(bool enabled)
Sets whether the effect is enabled.
bool enabled() const
Returns whether the effect is enabled.
static QgsProject * instance()
Returns the QgsProject singleton instance.
Registry of available symbol layer classes.
QStringList symbolLayersForType(Qgis::SymbolType type)
Returns a list of available symbol layers for a specified symbol type.
QgsSymbolLayerAbstractMetadata * symbolLayerMetadata(const QString &name) const
Returns metadata for specified symbol layer. Returns nullptr if not found.
static QPicture symbolLayerPreviewPicture(const QgsSymbolLayer *layer, QgsUnitTypes::RenderUnit units, QSize size, const QgsMapUnitScale &scale=QgsMapUnitScale())
Draws a symbol layer preview to a QPicture.
Property
Data definable properties.
@ PropertyLayerEnabled
Whether symbol layer is enabled.
virtual QColor color() const
The fill color.
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the layer.
QgsPaintEffect * paintEffect() const
Returns the current paint effect for the layer.
void setEnabled(bool enabled)
Sets whether symbol layer is enabled and should be drawn.
virtual QVariantMap properties() const =0
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
bool enabled() const
Returns true if symbol layer is enabled and will be drawn.
virtual QString layerType() const =0
Returns a string that represents this layer type.
virtual void setDataDefinedProperty(Property key, const QgsProperty &property)
Sets a data defined property for the layer.
static const QgsPropertiesDefinition & propertyDefinitions()
Returns the symbol layer property definitions.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the symbol layer's property collection, used for data defined overrides.
Contains settings which reflect the context in which a symbol (or renderer) widget is shown,...
QList< QgsExpressionContextScope > additionalExpressionContextScopes() const
Returns the list of additional expression context scopes to show as available within the layer.
void setSymbolType(Qgis::SymbolType type)
Sets the associated symbol type, if the widget is being shown as a subcomponent of a parent symbol co...
QgsExpressionContext * expressionContext() const
Returns the expression context used for the widget, if set.
QgsMapCanvas * mapCanvas() const
Returns the map canvas associated with the widget.
Abstract base class for all rendered symbols.
Qgis::SymbolType type() const
Returns the symbol's type.
@ RenderMillimeters
Millimeters.
Represents a vector layer which manages a vector based data sets.
QgsSymbolLayerWidget *(* QgsSymbolLayerWidgetFunc)(QgsVectorLayer *)
Single variable definition for use within a QgsExpressionContextScope.