Skip to content

Commit c32966d

Browse files
committedMay 10, 2016
Fix some minor memory leaks
1 parent 6b80518 commit c32966d

File tree

3 files changed

+19
-20
lines changed

3 files changed

+19
-20
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -675,10 +675,9 @@ QgisApp::QgisApp( QSplashScreen *splash, bool restorePlugins, bool skipVersionCh
675675
mLayerTreeView->setObjectName( "theLayerTreeView" ); // "theLayerTreeView" used to find this canonical instance later
676676

677677
// create undo widget
678-
mUndoWidget = new QgsUndoWidget( nullptr, mMapCanvas );
678+
mUndoDock = new QDockWidget( tr( "Undo/Redo Panel" ), this );
679+
mUndoWidget = new QgsUndoWidget( mUndoDock, mMapCanvas );
679680
mUndoWidget->setObjectName( "Undo" );
680-
681-
mUndoDock = new QDockWidget( tr( "Undo/Redo Panel" ), nullptr );
682681
mUndoDock->setWidget( mUndoWidget );
683682

684683
// Advanced Digitizing dock

‎src/gui/qgsadvanceddigitizingdockwidget.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ QgsAdvancedDigitizingDockWidget::QgsAdvancedDigitizingDockWidget( QgsMapCanvas*
103103

104104
mCadPaintItem = new QgsAdvancedDigitizingCanvasItem( canvas, this ) ;
105105

106-
mAngleConstraint = new CadConstraint( mAngleLineEdit, mLockAngleButton, mRelativeAngleButton, mRepeatingLockAngleButton );
107-
mDistanceConstraint = new CadConstraint( mDistanceLineEdit, mLockDistanceButton, nullptr, mRepeatingLockDistanceButton ) ;
108-
mXConstraint = new CadConstraint( mXLineEdit, mLockXButton, mRelativeXButton, mRepeatingLockXButton );
109-
mYConstraint = new CadConstraint( mYLineEdit, mLockYButton, mRelativeYButton, mRepeatingLockYButton ) ;
106+
mAngleConstraint.reset( new CadConstraint( mAngleLineEdit, mLockAngleButton, mRelativeAngleButton, mRepeatingLockAngleButton ) );
107+
mDistanceConstraint.reset( new CadConstraint( mDistanceLineEdit, mLockDistanceButton, nullptr, mRepeatingLockDistanceButton ) );
108+
mXConstraint.reset( new CadConstraint( mXLineEdit, mLockXButton, mRelativeXButton, mRepeatingLockXButton ) );
109+
mYConstraint.reset( new CadConstraint( mYLineEdit, mLockYButton, mRelativeYButton, mRepeatingLockYButton ) );
110110
mAdditionalConstraint = NoConstraint ;
111111

112112
mMapCanvas->installEventFilter( this );
@@ -347,19 +347,19 @@ QgsAdvancedDigitizingDockWidget::CadConstraint* QgsAdvancedDigitizingDockWidget:
347347
CadConstraint* constraint = nullptr;
348348
if ( obj == mAngleLineEdit || obj == mLockAngleButton )
349349
{
350-
constraint = mAngleConstraint;
350+
constraint = mAngleConstraint.data();
351351
}
352352
else if ( obj == mDistanceLineEdit || obj == mLockDistanceButton )
353353
{
354-
constraint = mDistanceConstraint;
354+
constraint = mDistanceConstraint.data();
355355
}
356356
else if ( obj == mXLineEdit || obj == mLockXButton )
357357
{
358-
constraint = mXConstraint;
358+
constraint = mXConstraint.data();
359359
}
360360
else if ( obj == mYLineEdit || obj == mLockYButton )
361361
{
362-
constraint = mYConstraint;
362+
constraint = mYConstraint.data();
363363
}
364364
return constraint;
365365
}
@@ -439,7 +439,7 @@ void QgsAdvancedDigitizingDockWidget::lockConstraint( bool activate /* default t
439439
if ( activate )
440440
{
441441
// deactivate perpendicular/parallel if angle has been activated
442-
if ( constraint == mAngleConstraint )
442+
if ( constraint == mAngleConstraint.data() )
443443
{
444444
lockAdditionalConstraint( NoConstraint );
445445
}

‎src/gui/qgsadvanceddigitizingdockwidget.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,13 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QDockWidget, private U
256256
//! Additional constraints are used to place perpendicular/parallel segments to snapped segments on the canvas
257257
AdditionalConstraint additionalConstraint() const { return mAdditionalConstraint; }
258258
//! Constraint on the angle
259-
const CadConstraint* constraintAngle() const { return mAngleConstraint; }
259+
const CadConstraint* constraintAngle() const { return mAngleConstraint.data(); }
260260
//! Constraint on the distance
261-
const CadConstraint* constraintDistance() const { return mDistanceConstraint; }
261+
const CadConstraint* constraintDistance() const { return mDistanceConstraint.data(); }
262262
//! Constraint on the X coordinate
263-
const CadConstraint* constraintX() const { return mXConstraint; }
263+
const CadConstraint* constraintX() const { return mXConstraint.data(); }
264264
//! Constraint on the Y coordinate
265-
const CadConstraint* constraintY() const { return mYConstraint; }
265+
const CadConstraint* constraintY() const { return mYConstraint.data(); }
266266
//! Constraint on a common angle
267267
bool commonAngleConstraint() const { return mCommonAngleConstraint; }
268268

@@ -439,10 +439,10 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QDockWidget, private U
439439
QgsMapMouseEvent::SnappingMode mSnappingMode;
440440

441441
// constraints
442-
CadConstraint* mAngleConstraint;
443-
CadConstraint* mDistanceConstraint;
444-
CadConstraint* mXConstraint;
445-
CadConstraint* mYConstraint;
442+
QScopedPointer< CadConstraint > mAngleConstraint;
443+
QScopedPointer< CadConstraint > mDistanceConstraint;
444+
QScopedPointer< CadConstraint > mXConstraint;
445+
QScopedPointer< CadConstraint > mYConstraint;
446446
AdditionalConstraint mAdditionalConstraint;
447447
int mCommonAngleConstraint; // if 0: do not snap to common angles
448448

0 commit comments

Comments
 (0)
Please sign in to comment.