void QgsSymbolV2SelectorDialog::updateSymbolInfo() { updateSymbolColor(); if ( mSymbol->type() == QgsSymbolV2::Marker ) { QgsMarkerSymbolV2* markerSymbol = static_cast<QgsMarkerSymbolV2*>( mSymbol ); spinSize->setValue( markerSymbol->size() ); spinAngle->setValue( markerSymbol->angle() ); } else if ( mSymbol->type() == QgsSymbolV2::Line ) { QgsLineSymbolV2* lineSymbol = static_cast<QgsLineSymbolV2*>( mSymbol ); spinWidth->setValue( lineSymbol->width() ); } }
void QgsSymbolV2SelectorDialog::setSymbolColor() { #if defined(Q_WS_MAC) && QT_VERSION >= 0x040500 && defined(QT_MAC_USE_COCOA) // Native Mac dialog works only for Qt Carbon // Qt bug: http://bugreports.qt.nokia.com/browse/QTBUG-14889 // FIXME need to also check max QT_VERSION when Qt bug fixed QColor color = QColorDialog::getColor( mSymbol->color(), this, "", QColorDialog::DontUseNativeDialog ); #else QColor color = QColorDialog::getColor( mSymbol->color(), this ); #endif if ( !color.isValid() ) return; mSymbol->setColor( color ); updateSymbolColor(); updateSymbolPreview(); emit symbolModified(); }
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() ); }