void QgsComposerPolygonWidget::on_mPolygonStyleButton_clicked() { if ( !mComposerPolygon ) { return; } // use the atlas coverage layer, if any QgsVectorLayer* coverageLayer = atlasCoverageLayer(); QScopedPointer<QgsFillSymbol> newSymbol; newSymbol.reset( mComposerPolygon->polygonStyleSymbol()->clone() ); QgsExpressionContext context = mComposerPolygon->createExpressionContext(); QgsSymbolSelectorDialog d( newSymbol.data(), QgsStyle::defaultStyle(), coverageLayer, this ); QgsSymbolWidgetContext symbolContext; symbolContext.setExpressionContext( &context ); d.setContext( symbolContext ); if ( d.exec() == QDialog::Accepted ) { mComposerPolygon->beginCommand( tr( "Polygon style changed" ) ); mComposerPolygon->setPolygonStyleSymbol( newSymbol.data() ); updatePolygonStyle(); mComposerPolygon->endCommand(); } }
void QgsComposerPolygonWidget::setGuiElementValues() { if ( !mComposerPolygon ) { return; } updatePolygonStyle(); }
void QgsComposerPolygonWidget::cleanUpStyleSelector( QgsPanelWidget* container ) { QgsSymbolSelectorWidget* w = qobject_cast<QgsSymbolSelectorWidget*>( container ); if ( !w ) return; delete w->symbol(); updatePolygonStyle(); mComposerPolygon->endCommand(); }
QgsComposerPolygonWidget::QgsComposerPolygonWidget( QgsComposerPolygon* composerPolygon ): QgsComposerItemBaseWidget( nullptr, composerPolygon ) , mComposerPolygon( composerPolygon ) { setupUi( this ); //add widget for general composer item properties QgsComposerItemWidget* itemPropertiesWidget = new QgsComposerItemWidget( this, composerPolygon ); //shapes don't use background or frame, since the symbol style is set through a QgsSymbolSelectorDialog itemPropertiesWidget->showBackgroundGroup( false ); itemPropertiesWidget->showFrameGroup( false ); mainLayout->addWidget( itemPropertiesWidget ); // update style icon updatePolygonStyle(); if ( mComposerPolygon ) { connect( mComposerPolygon, SIGNAL( itemChanged() ), this, SLOT( setGuiElementValues() ) ); } }