@@ -65,25 +65,21 @@ QgsRuleBasedLabeling::Rule::Rule( QgsPalLayerSettings *settings, int scaleMinDen
65
65
, mIsActive( true )
66
66
67
67
{
68
- mRuleKey = QUuid::createUuid ().toString ();
69
68
initFilter ();
70
69
}
71
70
72
71
QgsRuleBasedLabeling::Rule::~Rule ()
73
72
{
74
- delete mSettings ;
75
- delete mFilter ;
76
73
qDeleteAll ( mChildren );
77
74
// do NOT delete parent
78
75
}
79
76
80
77
void QgsRuleBasedLabeling::Rule::setSettings ( QgsPalLayerSettings *settings )
81
78
{
82
- if ( mSettings == settings )
79
+ if ( mSettings . get () == settings )
83
80
return ;
84
81
85
- delete mSettings ;
86
- mSettings = settings;
82
+ mSettings .reset ( settings );
87
83
}
88
84
89
85
QgsRuleBasedLabeling::RuleList QgsRuleBasedLabeling::Rule::descendants () const
@@ -102,16 +98,15 @@ void QgsRuleBasedLabeling::Rule::initFilter()
102
98
if ( mElseRule || mFilterExp .compare ( QLatin1String ( " ELSE" ), Qt::CaseInsensitive ) == 0 )
103
99
{
104
100
mElseRule = true ;
105
- mFilter = nullptr ;
101
+ mFilter . reset ( nullptr ) ;
106
102
}
107
103
else if ( !mFilterExp .isEmpty () )
108
104
{
109
- delete mFilter ;
110
- mFilter = new QgsExpression ( mFilterExp );
105
+ mFilter .reset ( new QgsExpression ( mFilterExp ) );
111
106
}
112
107
else
113
108
{
114
- mFilter = nullptr ;
109
+ mFilter . reset ( nullptr ) ;
115
110
}
116
111
}
117
112
@@ -204,7 +199,7 @@ QgsRuleBasedLabeling::Rule *QgsRuleBasedLabeling::Rule::findRuleByKey( const QSt
204
199
205
200
QgsRuleBasedLabeling::Rule *QgsRuleBasedLabeling::Rule::clone () const
206
201
{
207
- QgsPalLayerSettings *s = mSettings ? new QgsPalLayerSettings ( *mSettings ) : nullptr ;
202
+ QgsPalLayerSettings *s = mSettings . get () ? new QgsPalLayerSettings ( *mSettings ) : nullptr ;
208
203
Rule *newrule = new Rule ( s, mMaximumScale , mMinimumScale , mFilterExp , mDescription );
209
204
newrule->setActive ( mIsActive );
210
205
// clone children
@@ -286,7 +281,7 @@ void QgsRuleBasedLabeling::Rule::createSubProviders( QgsVectorLayer *layer, QgsR
286
281
if ( mSettings )
287
282
{
288
283
// add provider!
289
- QgsVectorLayerLabelProvider *p = provider->createProvider ( layer, mRuleKey , false , mSettings );
284
+ QgsVectorLayerLabelProvider *p = provider->createProvider ( layer, mRuleKey , false , mSettings . get () );
290
285
delete subProviders.value ( this , nullptr );
291
286
subProviders[this ] = p;
292
287
}
0 commit comments