Skip to content

Commit d7ab102

Browse files
committed
Fix some leaks in symbology widgets
1 parent e602a58 commit d7ab102

File tree

8 files changed

+44
-10
lines changed

8 files changed

+44
-10
lines changed

python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,22 @@ class QgsCategorizedSymbolRendererV2 : QgsFeatureRendererV2
113113
void setSourceSymbol( QgsSymbolV2* sym /Transfer/ );
114114

115115
QgsVectorColorRampV2* sourceColorRamp();
116+
117+
/** Sets the source color ramp.
118+
* @param ramp color ramp. Ownership is transferred to the renderer
119+
*/
116120
void setSourceColorRamp( QgsVectorColorRampV2* ramp /Transfer/ );
117121

118122
//! @note added in 2.1
119123
bool invertedColorRamp();
120124
void setInvertedColorRamp( bool inverted );
121125

122-
// Update the color ramp used and all symbols colors.
123-
//! @note added in 2.5
124-
void updateColorRamp( QgsVectorColorRampV2* ramp, bool inverted = false );
126+
/** Update the color ramp used and all symbols colors.
127+
* @param ramp color ramp. Ownership is transferred to the renderer
128+
* @param inverted set to true to invert ramp colors
129+
* @note added in 2.5
130+
*/
131+
void updateColorRamp( QgsVectorColorRampV2* ramp /Transfer/, bool inverted = false );
125132

126133
void setRotationField( QString fieldOrExpression ) /Deprecated/;
127134
QString rotationField() const /Deprecated/;

python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,13 +213,20 @@ class QgsGraduatedSymbolRendererV2 : QgsFeatureRendererV2
213213
void setSourceSymbol( QgsSymbolV2* sym /Transfer/ );
214214

215215
QgsVectorColorRampV2* sourceColorRamp();
216+
217+
/** Sets the source color ramp.
218+
* @param ramp color ramp. Ownership is transferred to the renderer
219+
*/
216220
void setSourceColorRamp( QgsVectorColorRampV2* ramp /Transfer/ );
221+
217222
//! @note added in 2.1
218223
bool invertedColorRamp();
219224
void setInvertedColorRamp( bool inverted );
220225

221226
/** Update the color ramp used. Also updates all symbols colors.
222227
* Doesn't alter current breaks.
228+
* @param ramp color ramp. Ownership is transferred to the renderer
229+
* @param inverted set to true to invert ramp colors
223230
*/
224231
void updateColorRamp( QgsVectorColorRampV2* ramp /Transfer/ = 0, bool inverted = false );
225232

src/core/symbology-ng/qgscategorizedsymbolrendererv2.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,21 @@ class CORE_EXPORT QgsCategorizedSymbolRendererV2 : public QgsFeatureRendererV2
146146
void setSourceSymbol( QgsSymbolV2* sym );
147147

148148
QgsVectorColorRampV2* sourceColorRamp();
149+
150+
/** Sets the source color ramp.
151+
* @param ramp color ramp. Ownership is transferred to the renderer
152+
*/
149153
void setSourceColorRamp( QgsVectorColorRampV2* ramp );
150154

151155
//! @note added in 2.1
152156
bool invertedColorRamp() { return mInvertedColorRamp; }
153157
void setInvertedColorRamp( bool inverted ) { mInvertedColorRamp = inverted; }
154158

155-
// Update the color ramp used and all symbols colors.
156-
//! @note added in 2.5
159+
/** Update the color ramp used and all symbols colors.
160+
* @param ramp color ramp. Ownership is transferred to the renderer
161+
* @param inverted set to true to invert ramp colors
162+
* @note added in 2.5
163+
*/
157164
void updateColorRamp( QgsVectorColorRampV2* ramp, bool inverted = false );
158165

159166
Q_DECL_DEPRECATED void setRotationField( QString fieldOrExpression ) override;

src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,13 +259,20 @@ class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
259259
void setSourceSymbol( QgsSymbolV2* sym );
260260

261261
QgsVectorColorRampV2* sourceColorRamp();
262+
263+
/** Sets the source color ramp.
264+
* @param ramp color ramp. Ownership is transferred to the renderer
265+
*/
262266
void setSourceColorRamp( QgsVectorColorRampV2* ramp );
267+
263268
//! @note added in 2.1
264269
bool invertedColorRamp() { return mInvertedColorRamp; }
265270
void setInvertedColorRamp( bool inverted ) { mInvertedColorRamp = inverted; }
266271

267272
/** Update the color ramp used. Also updates all symbols colors.
268273
* Doesn't alter current breaks.
274+
* @param ramp color ramp. Ownership is transferred to the renderer
275+
* @param inverted set to true to invert ramp colors
269276
*/
270277
void updateColorRamp( QgsVectorColorRampV2* ramp = 0, bool inverted = false );
271278

src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ QgsCategorizedSymbolRendererV2Widget::~QgsCategorizedSymbolRendererV2Widget()
472472
{
473473
if ( mRenderer ) delete mRenderer;
474474
if ( mModel ) delete mModel;
475+
delete mCategorizedSymbol;
475476
}
476477

477478
void QgsCategorizedSymbolRendererV2Widget::updateUiFromRenderer()
@@ -557,6 +558,7 @@ void QgsCategorizedSymbolRendererV2Widget::changeCategorizedSymbol()
557558
return;
558559
}
559560

561+
delete mCategorizedSymbol;
560562
mCategorizedSymbol = newSymbol;
561563
updateCategorizedSymbolIcon();
562564

@@ -781,14 +783,15 @@ void QgsCategorizedSymbolRendererV2Widget::addCategories()
781783
delete mRenderer;
782784
mRenderer = r;
783785
if ( ! keepExistingColors && ramp ) applyColorRamp();
786+
delete ramp;
784787
}
785788

786789
void QgsCategorizedSymbolRendererV2Widget::applyColorRamp()
787790
{
788791
QgsVectorColorRampV2* ramp = getColorRamp();
789792
if ( ramp )
790793
{
791-
mRenderer->updateColorRamp( ramp->clone(), cbxInvertedColorRamp->isChecked() );
794+
mRenderer->updateColorRamp( ramp, cbxInvertedColorRamp->isChecked() );
792795
}
793796
mModel->updateSymbology();
794797
}

src/gui/symbology-ng/qgscolorrampcombobox.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ bool QgsColorRampComboBox::createNewColorRampSelected() const
8787

8888
void QgsColorRampComboBox::setSourceColorRamp( QgsVectorColorRampV2* sourceRamp )
8989
{
90+
delete mSourceColorRamp;
9091
mSourceColorRamp = sourceRamp->clone();
9192

9293
QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon( mSourceColorRamp, rampIconSize );

src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,7 @@ QgsGraduatedSymbolRendererV2Widget::~QgsGraduatedSymbolRendererV2Widget()
503503
{
504504
delete mRenderer;
505505
delete mModel;
506+
delete mGraduatedSymbol;
506507
}
507508

508509
QgsFeatureRendererV2* QgsGraduatedSymbolRendererV2Widget::renderer()
@@ -645,7 +646,7 @@ void QgsGraduatedSymbolRendererV2Widget::on_methodComboBox_currentIndexChanged(
645646
QMessageBox::critical( this, tr( "Error" ), tr( "The selected color ramp is not available." ) );
646647
return;
647648
}
648-
mRenderer->setSourceColorRamp( ramp->clone() );
649+
mRenderer->setSourceColorRamp( ramp );
649650
reapplyColorRamp();
650651
}
651652
else
@@ -716,7 +717,7 @@ void QgsGraduatedSymbolRendererV2Widget::classifyGraduated()
716717
QMessageBox::critical( this, tr( "Error" ), tr( "The selected color ramp is not available." ) );
717718
return;
718719
}
719-
mRenderer->setSourceColorRamp( ramp->clone() );
720+
mRenderer->setSourceColorRamp( ramp );
720721
}
721722
else
722723
{
@@ -775,6 +776,7 @@ void QgsGraduatedSymbolRendererV2Widget::changeGraduatedSymbol()
775776
return;
776777
}
777778

779+
delete mGraduatedSymbol;
778780
mGraduatedSymbol = newSymbol;
779781

780782
mSizeUnitWidget->blockSignals( true );

src/gui/symbology-ng/qgssymbolv2selectordialog.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ QgsSymbolV2SelectorDialog::QgsSymbolV2SelectorDialog( QgsSymbolV2* symbol, QgsSt
231231
btnUp->setIcon( QIcon( QgsApplication::iconPath( "symbologyUp.svg" ) ) );
232232
btnDown->setIcon( QIcon( QgsApplication::iconPath( "symbologyDown.svg" ) ) );
233233

234-
model = new QStandardItemModel();
234+
model = new QStandardItemModel( layersTree );
235235
// Set the symbol
236236
layersTree->setModel( model );
237237
layersTree->setHeaderHidden( true );
@@ -273,7 +273,7 @@ QMenu* QgsSymbolV2SelectorDialog::advancedMenu()
273273
{
274274
if ( mAdvancedMenu == NULL )
275275
{
276-
mAdvancedMenu = new QMenu;
276+
mAdvancedMenu = new QMenu( this );
277277
// Brute force method to activate the Advanced menu
278278
layerChanged();
279279
}

0 commit comments

Comments
 (0)