Skip to content

Commit

Permalink
Fix accidental overwrite using wrong symbol settings
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jul 29, 2020
1 parent a0e915f commit f48a79c
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/app/3d/qgssymbol3dwidget.cpp
Expand Up @@ -156,6 +156,8 @@ void QgsSymbol3DWidget::saveSymbol()
if ( saveDlg.name().isEmpty() )
return;

std::unique_ptr< QgsAbstract3DSymbol > newSymbol( symbol() );

// check if there is no symbol with same name
if ( QgsStyle::defaultStyle()->symbol3DNames().contains( saveDlg.name() ) )
{
Expand All @@ -173,9 +175,9 @@ void QgsSymbol3DWidget::saveSymbol()
QStringList symbolTags = saveDlg.tags().split( ',' );

// add new symbol to style and re-populate the list
QgsAbstract3DSymbol *newSymbol = symbol();
QgsStyle::defaultStyle()->addSymbol3D( saveDlg.name(), newSymbol );
QgsAbstract3DSymbol *s = newSymbol.get();
QgsStyle::defaultStyle()->addSymbol3D( saveDlg.name(), newSymbol.release() );

// make sure the symbol is stored
QgsStyle::defaultStyle()->saveSymbol3D( saveDlg.name(), newSymbol, saveDlg.isFavorite(), symbolTags );
QgsStyle::defaultStyle()->saveSymbol3D( saveDlg.name(), s, saveDlg.isFavorite(), symbolTags );
}

0 comments on commit f48a79c

Please sign in to comment.