@@ -1137,6 +1137,9 @@ QString QgsPalLayerSettings::updateDataDefinedString( const QString& value )
1137
1137
1138
1138
QgsDataDefined* QgsPalLayerSettings::dataDefinedProperty ( DataDefinedProperties p )
1139
1139
{
1140
+ if ( dataDefinedProperties.isEmpty () )
1141
+ return 0 ;
1142
+
1140
1143
QMap< QgsPalLayerSettings::DataDefinedProperties, QgsDataDefined* >::const_iterator it = dataDefinedProperties.find ( p );
1141
1144
if ( it != dataDefinedProperties.constEnd () )
1142
1145
{
@@ -1158,7 +1161,7 @@ QMap<QString, QString> QgsPalLayerSettings::dataDefinedMap( DataDefinedPropertie
1158
1161
1159
1162
QVariant QgsPalLayerSettings::dataDefinedValue ( DataDefinedProperties p, QgsFeature& f, const QgsFields& fields, const QgsExpressionContext *context ) const
1160
1163
{
1161
- if ( !dataDefinedProperties.contains ( p ) )
1164
+ if ( dataDefinedProperties. isEmpty () || !dataDefinedProperties.contains ( p ) )
1162
1165
{
1163
1166
return QVariant ();
1164
1167
}
@@ -1227,6 +1230,8 @@ bool QgsPalLayerSettings::dataDefinedEvaluate( DataDefinedProperties p, QVariant
1227
1230
{
1228
1231
// null passed-around QVariant
1229
1232
exprVal.clear ();
1233
+ if ( dataDefinedProperties.isEmpty () )
1234
+ return false ;
1230
1235
1231
1236
// try to keep < 2.12 API - handle no passed expression context
1232
1237
QScopedPointer< QgsExpressionContext > scopedEc;
@@ -1254,7 +1259,11 @@ bool QgsPalLayerSettings::dataDefinedEvaluate( DataDefinedProperties p, QVariant
1254
1259
1255
1260
bool QgsPalLayerSettings::dataDefinedIsActive ( DataDefinedProperties p ) const
1256
1261
{
1262
+ if ( dataDefinedProperties.isEmpty () )
1263
+ return false ;
1264
+
1257
1265
bool isActive = false ;
1266
+
1258
1267
QMap< DataDefinedProperties, QgsDataDefined* >::const_iterator it = dataDefinedProperties.find ( p );
1259
1268
if ( it != dataDefinedProperties.constEnd () )
1260
1269
{
@@ -1266,6 +1275,9 @@ bool QgsPalLayerSettings::dataDefinedIsActive( DataDefinedProperties p ) const
1266
1275
1267
1276
bool QgsPalLayerSettings::dataDefinedUseExpression ( DataDefinedProperties p ) const
1268
1277
{
1278
+ if ( dataDefinedProperties.isEmpty () )
1279
+ return false ;
1280
+
1269
1281
bool useExpression = false ;
1270
1282
QMap< DataDefinedProperties, QgsDataDefined* >::const_iterator it = dataDefinedProperties.find ( p );
1271
1283
if ( it != dataDefinedProperties.constEnd () )
0 commit comments