File tree 2 files changed +5
-4
lines changed
2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -796,9 +796,9 @@ void QgsAppLayerTreeViewMenuProvider::setSymbolLegendNodeColor( const QColor &co
796
796
if ( !originalSymbol )
797
797
return ;
798
798
799
- QgsSymbol * newSymbol = originalSymbol->clone ();
799
+ std::unique_ptr< QgsSymbol > newSymbol ( originalSymbol->clone () );
800
800
newSymbol->setColor ( color );
801
- node->setSymbol ( newSymbol );
801
+ node->setSymbol ( newSymbol. release () );
802
802
if ( QgsVectorLayer *layer = qobject_cast<QgsVectorLayer *>( QgsProject::instance ()->mapLayer ( layerId ) ) )
803
803
{
804
804
layer->emitStyleChanged ();
Original file line number Diff line number Diff line change @@ -203,12 +203,13 @@ void QgsSymbolLegendNode::setSymbol( QgsSymbol *symbol )
203
203
if ( !symbol )
204
204
return ;
205
205
206
+ std::unique_ptr< QgsSymbol > s ( symbol ); // this method takes ownership of symbol
206
207
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( mLayerNode ->layer () );
207
208
if ( !vlayer || !vlayer->renderer () )
208
209
return ;
209
210
210
- mItem .setSymbol ( symbol );
211
- vlayer->renderer ()->setLegendSymbolItem ( mItem .ruleKey (), symbol );
211
+ mItem .setSymbol ( s. get () ); // doesn't transfer ownership
212
+ vlayer->renderer ()->setLegendSymbolItem ( mItem .ruleKey (), s. release () ); // DOES transfer ownership!
212
213
213
214
mPixmap = QPixmap ();
214
215
You can’t perform that action at this time.
0 commit comments