Exemplo n.º 1
0
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();
  }
}
Exemplo n.º 2
0
void QgsComposerPolygonWidget::setGuiElementValues()
{
  if ( !mComposerPolygon )
  {
    return;
  }

  updatePolygonStyle();
}
Exemplo n.º 3
0
void QgsComposerPolygonWidget::cleanUpStyleSelector( QgsPanelWidget* container )
{
  QgsSymbolSelectorWidget* w = qobject_cast<QgsSymbolSelectorWidget*>( container );
  if ( !w )
    return;

  delete w->symbol();
  updatePolygonStyle();
  mComposerPolygon->endCommand();
}
Exemplo n.º 4
0
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() ) );
  }
}