void QgsSymbolsListWidget::setLineWidth( double width ) { QgsLineSymbol *lineSymbol = static_cast<QgsLineSymbol *>( mSymbol ); if ( lineSymbol->width() == width ) return; lineSymbol->setWidth( width ); emit changed(); }
void QgsFeatureRenderer::convertSymbolSizeScale( QgsSymbol * symbol, QgsSymbol::ScaleMethod method, const QString & field ) { if ( symbol->type() == QgsSymbol::Marker ) { QgsMarkerSymbol * s = static_cast<QgsMarkerSymbol *>( symbol ); if ( QgsSymbol::ScaleArea == QgsSymbol::ScaleMethod( method ) ) { const QgsDataDefined dd( "coalesce(sqrt(" + QString::number( s->size() ) + " * (" + field + ")),0)" ); s->setDataDefinedSize( dd ); } else { const QgsDataDefined dd( "coalesce(" + QString::number( s->size() ) + " * (" + field + "),0)" ); s->setDataDefinedSize( dd ); } s->setScaleMethod( QgsSymbol::ScaleDiameter ); } else if ( symbol->type() == QgsSymbol::Line ) { QgsLineSymbol * s = static_cast<QgsLineSymbol *>( symbol ); const QgsDataDefined dd( "coalesce(" + QString::number( s->width() ) + " * (" + field + "),0)" ); s->setDataDefinedWidth( dd ); } }
void QgsSymbolsListWidget::updateSymbolInfo() { updateSymbolColor(); const auto overrideButtons {findChildren< QgsPropertyOverrideButton * >()}; for ( QgsPropertyOverrideButton *button : overrideButtons ) { button->registerExpressionContextGenerator( this ); } if ( mSymbol->type() == QgsSymbol::Marker ) { QgsMarkerSymbol *markerSymbol = static_cast<QgsMarkerSymbol *>( mSymbol ); spinSize->setValue( markerSymbol->size() ); spinAngle->setValue( markerSymbol->angle() ); if ( mLayer ) { QgsProperty ddSize( markerSymbol->dataDefinedSize() ); mSizeDDBtn->init( QgsSymbolLayer::PropertySize, ddSize, QgsSymbolLayer::propertyDefinitions(), mLayer, true ); spinSize->setEnabled( !mSizeDDBtn->isActive() ); QgsProperty ddAngle( markerSymbol->dataDefinedAngle() ); mRotationDDBtn->init( QgsSymbolLayer::PropertyAngle, ddAngle, QgsSymbolLayer::propertyDefinitions(), mLayer, true ); spinAngle->setEnabled( !mRotationDDBtn->isActive() ); } else { mSizeDDBtn->setEnabled( false ); mRotationDDBtn->setEnabled( false ); } } else if ( mSymbol->type() == QgsSymbol::Line ) { QgsLineSymbol *lineSymbol = static_cast<QgsLineSymbol *>( mSymbol ); spinWidth->setValue( lineSymbol->width() ); if ( mLayer ) { QgsProperty dd( lineSymbol->dataDefinedWidth() ); mWidthDDBtn->init( QgsSymbolLayer::PropertyStrokeWidth, dd, QgsSymbolLayer::propertyDefinitions(), mLayer, true ); spinWidth->setEnabled( !mWidthDDBtn->isActive() ); } else { mWidthDDBtn->setEnabled( false ); } } mSymbolUnitWidget->blockSignals( true ); mSymbolUnitWidget->setUnit( mSymbol->outputUnit() ); mSymbolUnitWidget->setMapUnitScale( mSymbol->mapUnitScale() ); mSymbolUnitWidget->blockSignals( false ); mOpacityWidget->setOpacity( mSymbol->opacity() ); // Clean up previous advanced symbol actions const QList<QAction *> actionList( btnAdvanced->menu()->actions() ); for ( const auto &action : actionList ) { if ( mClipFeaturesAction->text() == action->text() ) { btnAdvanced->menu()->removeAction( action ); } else if ( mStandardizeRingsAction->text() == action->text() ) { btnAdvanced->menu()->removeAction( action ); } } if ( mSymbol->type() == QgsSymbol::Line || mSymbol->type() == QgsSymbol::Fill ) { //add clip features option for line or fill symbols btnAdvanced->menu()->addAction( mClipFeaturesAction ); } if ( mSymbol->type() == QgsSymbol::Fill ) { btnAdvanced->menu()->addAction( mStandardizeRingsAction ); } btnAdvanced->setVisible( mAdvancedMenu || !btnAdvanced->menu()->isEmpty() ); whileBlocking( mClipFeaturesAction )->setChecked( mSymbol->clipFeaturesToExtent() ); whileBlocking( mStandardizeRingsAction )->setChecked( mSymbol->forceRHR() ); }