Skip to content

Commit

Permalink
Avoid even more loss of renderer properties when changing renderer type
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jun 28, 2021
1 parent 0565c3f commit bb002d4
Show file tree
Hide file tree
Showing 12 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/core/symbology/qgsnullsymbolrenderer.cpp
Expand Up @@ -91,6 +91,7 @@ QString QgsNullSymbolRenderer::dump() const
QgsFeatureRenderer *QgsNullSymbolRenderer::clone() const
{
QgsNullSymbolRenderer *r = new QgsNullSymbolRenderer();
copyRendererData( r );
return r;
}

Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgscategorizedsymbolrendererwidget.cpp
Expand Up @@ -509,6 +509,8 @@ QgsCategorizedSymbolRendererWidget::QgsCategorizedSymbolRendererWidget( QgsVecto
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsCategorizedSymbolRenderer >( QString(), QgsCategoryList() );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

QString attrName = mRenderer->classAttribute();
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp
Expand Up @@ -65,6 +65,8 @@ QgsEmbeddedSymbolRendererWidget::QgsEmbeddedSymbolRendererWidget( QgsVectorLayer
{
// use default embedded renderer
mRenderer.reset( new QgsEmbeddedSymbolRenderer( QgsSymbol::defaultSymbol( type ) ) );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

mDefaultSymbolToolButton->setSymbol( mRenderer->defaultSymbol()->clone() );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp
Expand Up @@ -459,6 +459,8 @@ QgsGraduatedSymbolRendererWidget::QgsGraduatedSymbolRendererWidget( QgsVectorLay
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsGraduatedSymbolRenderer >( QString(), QgsRangeList() );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

// setup user interface
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsheatmaprendererwidget.cpp
Expand Up @@ -110,6 +110,8 @@ QgsHeatmapRendererWidget::QgsHeatmapRendererWidget( QgsVectorLayer *layer, QgsSt
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsHeatmapRenderer >();
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

btnColorRamp->setShowGradientOnly( true );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp
Expand Up @@ -64,6 +64,8 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay
if ( ! mRenderer )
{
mRenderer.reset( new QgsInvertedPolygonRenderer() );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}
mMergePolygonsCheckBox->blockSignals( true );
mMergePolygonsCheckBox->setCheckState( mRenderer->preprocessingEnabled() ? Qt::Checked : Qt::Unchecked );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsmergedfeaturerendererwidget.cpp
Expand Up @@ -63,6 +63,8 @@ QgsMergedFeatureRendererWidget::QgsMergedFeatureRendererWidget( QgsVectorLayer *
{
// use default embedded renderer
mRenderer.reset( new QgsMergedFeatureRenderer( QgsFeatureRenderer::defaultRenderer( type ) ) );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

int currentEmbeddedIdx = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsnullsymbolrendererwidget.cpp
Expand Up @@ -34,6 +34,8 @@ QgsNullSymbolRendererWidget::QgsNullSymbolRendererWidget( QgsVectorLayer *layer,
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsNullSymbolRenderer >();
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

QGridLayout *layout = new QGridLayout( this );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgspointclusterrendererwidget.cpp
Expand Up @@ -68,6 +68,8 @@ QgsPointClusterRendererWidget::QgsPointClusterRendererWidget( QgsVectorLayer *la
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsPointClusterRenderer >();
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

blockAllSignals( true );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgspointdisplacementrendererwidget.cpp
Expand Up @@ -76,6 +76,8 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto
if ( !mRenderer )
{
mRenderer = std::make_unique< QgsPointDisplacementRenderer >();
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

blockAllSignals( true );
Expand Down
2 changes: 2 additions & 0 deletions src/gui/symbology/qgsrulebasedrendererwidget.cpp
Expand Up @@ -69,6 +69,8 @@ QgsRuleBasedRendererWidget::QgsRuleBasedRendererWidget( QgsVectorLayer *layer, Q
QgsSymbol *symbol = QgsSymbol::defaultSymbol( mLayer->geometryType() );

mRenderer = std::make_unique< QgsRuleBasedRenderer >( symbol );
if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

setupUi( this );
Expand Down
3 changes: 3 additions & 0 deletions src/gui/symbology/qgssinglesymbolrendererwidget.cpp
Expand Up @@ -49,6 +49,9 @@ QgsSingleSymbolRendererWidget::QgsSingleSymbolRendererWidget( QgsVectorLayer *la

if ( symbol )
mRenderer = std::make_unique< QgsSingleSymbolRenderer >( symbol );

if ( renderer )
renderer->copyRendererData( mRenderer.get() );
}

// load symbol from it
Expand Down

0 comments on commit bb002d4

Please sign in to comment.