void QgsSymbolV2SelectorWidget::setMapCanvas( QgsMapCanvas *canvas ) { mMapCanvas = canvas; QWidget* widget = stackedWidget->currentWidget(); QgsLayerPropertiesWidget* layerProp = dynamic_cast< QgsLayerPropertiesWidget* >( widget ); QgsSymbolsListWidget* listWidget = dynamic_cast< QgsSymbolsListWidget* >( widget ); if ( layerProp ) layerProp->setMapCanvas( canvas ); if ( listWidget ) listWidget->setMapCanvas( canvas ); }
void QgsSymbolV2SelectorDialog::layerChanged() { updateUi(); SymbolLayerItem *currentItem = static_cast<SymbolLayerItem*>( model->itemFromIndex( layersTree->currentIndex() ) ); if ( currentItem == NULL ) return; if ( currentItem->isLayer() ) { SymbolLayerItem *parent = static_cast<SymbolLayerItem*>( currentItem->parent() ); mDataDefineRestorer.reset( new DataDefinedRestorer( parent->symbol(), currentItem->layer() ) ); QgsLayerPropertiesWidget *layerProp = new QgsLayerPropertiesWidget( currentItem->layer(), parent->symbol(), mVectorLayer ); layerProp->setExpressionContext( mPresetExpressionContext.data() ); layerProp->setMapCanvas( mMapCanvas ); setWidget( layerProp ); connect( layerProp, SIGNAL( changed() ), mDataDefineRestorer.data(), SLOT( restore() ) ); connect( layerProp, SIGNAL( changed() ), this, SLOT( updateLayerPreview() ) ); // This connection when layer type is changed connect( layerProp, SIGNAL( changeLayer( QgsSymbolLayerV2* ) ), this, SLOT( changeLayer( QgsSymbolLayerV2* ) ) ); }