Skip to content

Commit 66ef358

Browse files
author
rblazek
committed
destructor fix, delete mCanvasEdit etc.
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@5729 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 3027546 commit 66ef358

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/plugins/grass/qgsgrassedit.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ bool QgsGrassEdit::mRunning = false;
107107
QgsGrassEdit::QgsGrassEdit ( QgisApp *qgisApp, QgisIface *iface,
108108
QWidget * parent, Qt::WFlags f )
109109
:QMainWindow(parent,f), QgsGrassEditBase (), mMapTool(0),
110-
mCanvasEdit(0), mRubberBandLine(0), mRubberBandIcon(0)
110+
mCanvasEdit(0), mRubberBandLine(0), mRubberBandIcon(0), mInited(false)
111111
{
112112
#ifdef QGISDEBUG
113113
std::cerr << "QgsGrassEdit()" << std::endl;
@@ -195,7 +195,7 @@ QgsGrassEdit::QgsGrassEdit ( QgisApp *qgisApp, QgisIface *iface,
195195
QgsGrassProvider *provider,
196196
QWidget * parent, Qt::WFlags f )
197197
:QMainWindow(parent, 0, f), QgsGrassEditBase (), mMapTool(0),
198-
mCanvasEdit(0), mRubberBandLine(0), mRubberBandIcon(0)
198+
mCanvasEdit(0), mRubberBandLine(0), mRubberBandIcon(0), mInited(false)
199199
{
200200
#ifdef QGISDEBUG
201201
std::cerr << "QgsGrassEdit()" << std::endl;
@@ -539,6 +539,7 @@ void QgsGrassEdit::init()
539539
restorePosition();
540540

541541
mValid = true;
542+
mInited = true;
542543
}
543544

544545
void QgsGrassEdit::attributeTableFieldChanged ( void )
@@ -920,7 +921,10 @@ QgsGrassEdit::~QgsGrassEdit()
920921
std::cerr << "QgsGrassEdit::~QgsGrassEdit()" << std::endl;
921922
#endif
922923

923-
if (mValid) // we can only call some methods if init was complete
924+
// we can only call some methods if init was complete,
925+
// note that we cannot use mValid because it is disabled before
926+
// destructor is called
927+
if (mInited)
924928
{
925929
if ( mMapTool ) mCanvas->unsetMapTool ( mMapTool );
926930
// TODO: delete tool? Probably
@@ -931,6 +935,7 @@ QgsGrassEdit::~QgsGrassEdit()
931935
mRubberBandLine->reset();
932936
delete mRubberBandLine;
933937
delete mRubberBandIcon;
938+
934939
delete mCanvasEdit;
935940

936941
mCanvas->refresh();

src/plugins/grass/qgsgrassedit.h

+3
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,9 @@ public slots:
294294

295295
//! Status: true - active vector was successfully opened for editing
296296
bool mValid;
297+
298+
//! Initialization complete
299+
bool mInited;
297300

298301
//! QGIS application
299302
QgisApp *mQgisApp;

0 commit comments

Comments
 (0)