Skip to content

Commit 856ef80

Browse files
committed
fix crash on exit
1 parent ad99829 commit 856ef80

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

src/app/gps/qgsgpsinformationwidget.cpp

+24-24
Original file line numberDiff line numberDiff line change
@@ -136,28 +136,28 @@ QgsGPSInformationWidget::QgsGPSInformationWidget( QgsMapCanvas * thepCanvas, QWi
136136
);
137137

138138
// grids, axes
139-
QwtPolarGrid * mypSatellitesGrid = new QwtPolarGrid();
140-
mypSatellitesGrid->setGridAttribute( QwtPolarGrid::AutoScaling, false ); // This fixes the issue of autoscaling on the Radius grid. It is ON by default AND is separate from the scaleData.doAutoScale in QwtPolarPlot::setScale(), etc. THIS IS VERY TRICKY!
141-
mypSatellitesGrid->setPen( QPen( Qt::black ) );
139+
mpSatellitesGrid = new QwtPolarGrid();
140+
mpSatellitesGrid->setGridAttribute( QwtPolarGrid::AutoScaling, false ); // This fixes the issue of autoscaling on the Radius grid. It is ON by default AND is separate from the scaleData.doAutoScale in QwtPolarPlot::setScale(), etc. THIS IS VERY TRICKY!
141+
mpSatellitesGrid->setPen( QPen( Qt::black ) );
142142
QPen minorPen( Qt::gray ); // moved outside of for loop; NOTE setting the minor pen isn't necessary if the minor grids aren't shown
143143
for ( int scaleId = 0; scaleId < QwtPolar::ScaleCount; scaleId++ )
144144
{
145-
//mypSatellitesGrid->showGrid( scaleId );
146-
//mypSatellitesGrid->showMinorGrid(scaleId);
147-
mypSatellitesGrid->setMinorGridPen( scaleId, minorPen );
145+
//mpSatellitesGrid->showGrid( scaleId );
146+
//mpSatellitesGrid->showMinorGrid(scaleId);
147+
mpSatellitesGrid->setMinorGridPen( scaleId, minorPen );
148148
}
149-
// mypSatellitesGrid->setAxisPen( QwtPolar::AxisAzimuth, QPen( Qt::black ) );
150-
151-
mypSatellitesGrid->showAxis( QwtPolar::AxisAzimuth, true );
152-
mypSatellitesGrid->showAxis( QwtPolar::AxisLeft, false ); //alt axis
153-
mypSatellitesGrid->showAxis( QwtPolar::AxisRight, false );//alt axis
154-
mypSatellitesGrid->showAxis( QwtPolar::AxisTop, false );//alt axis
155-
mypSatellitesGrid->showAxis( QwtPolar::AxisBottom, false );//alt axis
156-
mypSatellitesGrid->showGrid( QwtPolar::ScaleAzimuth, false ); // hide the grid; just show ticks at edge
157-
mypSatellitesGrid->showGrid( QwtPolar::ScaleRadius, true );
158-
// mypSatellitesGrid->showMinorGrid( QwtPolar::ScaleAzimuth, true );
159-
mypSatellitesGrid->showMinorGrid( QwtPolar::ScaleRadius, true ); // for 22.5, 67.5 degree circles
160-
mypSatellitesGrid->attach( mpSatellitesWidget );
149+
// mpSatellitesGrid->setAxisPen( QwtPolar::AxisAzimuth, QPen( Qt::black ) );
150+
151+
mpSatellitesGrid->showAxis( QwtPolar::AxisAzimuth, true );
152+
mpSatellitesGrid->showAxis( QwtPolar::AxisLeft, false ); //alt axis
153+
mpSatellitesGrid->showAxis( QwtPolar::AxisRight, false );//alt axis
154+
mpSatellitesGrid->showAxis( QwtPolar::AxisTop, false );//alt axis
155+
mpSatellitesGrid->showAxis( QwtPolar::AxisBottom, false );//alt axis
156+
mpSatellitesGrid->showGrid( QwtPolar::ScaleAzimuth, false ); // hide the grid; just show ticks at edge
157+
mpSatellitesGrid->showGrid( QwtPolar::ScaleRadius, true );
158+
// mpSatellitesGrid->showMinorGrid( QwtPolar::ScaleAzimuth, true );
159+
mpSatellitesGrid->showMinorGrid( QwtPolar::ScaleRadius, true ); // for 22.5, 67.5 degree circles
160+
mpSatellitesGrid->attach( mpSatellitesWidget );
161161

162162
//QwtLegend *legend = new QwtLegend;
163163
//mpSatellitesWidget->insertLegend(legend, QwtPolarPlot::BottomLegend);
@@ -253,8 +253,12 @@ QgsGPSInformationWidget::~QgsGPSInformationWidget()
253253
disconnectGps();
254254
}
255255

256-
if ( mpMapMarker )
257-
delete mpMapMarker;
256+
delete mpMapMarker;
257+
delete mpRubberBand;
258+
259+
#if (WITH_QWTPOLAR)
260+
delete mpSatellitesGrid;
261+
#endif
258262

259263
QSettings mySettings;
260264
mySettings.setValue( "/gps/lastPort", mCboDevices->itemData( mCboDevices->currentIndex() ).toString() );
@@ -303,10 +307,6 @@ QgsGPSInformationWidget::~QgsGPSInformationWidget()
303307
mySettings.setValue( "/gps/panMode", "none" );
304308
}
305309

306-
if ( mpRubberBand )
307-
{
308-
delete mpRubberBand;
309-
}
310310
}
311311

312312
void QgsGPSInformationWidget::on_mSpinTrackWidth_valueChanged( int theValue )

src/app/gps/qgsgpsinformationwidget.h

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <qwt_plot_curve.h>
2626
#if (WITH_QWTPOLAR)
2727
#include <qwt_polar_plot.h>
28+
#include <qwt_polar_grid.h>
2829
#include <qwt_polar_marker.h>
2930
#endif
3031

@@ -89,6 +90,7 @@ class QgsGPSInformationWidget: public QWidget, private Ui::QgsGPSInformationWidg
8990
QwtPlotCurve * mpCurve;
9091
#if (WITH_QWTPOLAR)
9192
QwtPolarPlot * mpSatellitesWidget;
93+
QwtPolarGrid *mpSatellitesGrid;
9294
QList< QwtPolarMarker * > mMarkerList;
9395
#endif
9496
void createRubberBand();

0 commit comments

Comments
 (0)