Skip to content

Commit d709496

Browse files
committed
Fix crash in label property dialog (refs #13543)
1 parent 88976c2 commit d709496

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

‎src/app/qgslabelpropertydialog.cpp‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ QgsLabelPropertyDialog::~QgsLabelPropertyDialog()
4848
{
4949
QSettings settings;
5050
settings.setValue( QString( "/Windows/ChangeLabelProps/geometry" ), saveGeometry() );
51+
52+
qDeleteAll( mDataDefinedProperties );
5153
}
5254

5355
void QgsLabelPropertyDialog::on_buttonBox_clicked( QAbstractButton *button )
@@ -143,7 +145,11 @@ void QgsLabelPropertyDialog::init( const QString& layerId, int featureId, const
143145

144146
disableGuiElements();
145147

146-
mDataDefinedProperties = layerSettings.dataDefinedProperties;
148+
QMap< QgsPalLayerSettings::DataDefinedProperties, QgsDataDefined* >::const_iterator it = layerSettings.dataDefinedProperties.constBegin();
149+
for ( ; it != layerSettings.dataDefinedProperties.constEnd(); ++it )
150+
{
151+
mDataDefinedProperties.insert( it.key(), it.value() ? new QgsDataDefined( *it.value() ) : 0 );
152+
}
147153

148154
//set widget values from data defined results
149155
setDataDefinedValues( layerSettings, vlayer );
@@ -656,7 +662,7 @@ void QgsLabelPropertyDialog::insertChangedValue( QgsPalLayerSettings::DataDefine
656662
{
657663
QgsDataDefined* dd = ddIt.value();
658664

659-
if ( dd->isActive() && !dd->useExpression() && !dd->field().isEmpty() )
665+
if ( dd && dd->isActive() && !dd->useExpression() && !dd->field().isEmpty() )
660666
{
661667
mChangedProperties.insert( mCurLabelFeat.fieldNameIndex( dd->field() ), value );
662668
}

0 commit comments

Comments
 (0)