mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Fix potential crash if canvas is deleted before cad dock
This commit is contained in:
parent
0434469dd0
commit
b2b5ee278c
@ -10,6 +10,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsAdvancedDigitizingFloater : QWidget
|
||||
{
|
||||
%Docstring(signature="appended")
|
||||
|
@ -24,7 +24,9 @@
|
||||
#include "qgsfocuswatcher.h"
|
||||
|
||||
QgsAdvancedDigitizingFloater::QgsAdvancedDigitizingFloater( QgsMapCanvas *canvas, QgsAdvancedDigitizingDockWidget *cadDockWidget )
|
||||
: QWidget( canvas->viewport() ), mMapCanvas( canvas ), mCadDockWidget( cadDockWidget )
|
||||
: QWidget( canvas->viewport() )
|
||||
, mMapCanvas( canvas )
|
||||
, mCadDockWidget( cadDockWidget )
|
||||
{
|
||||
setupUi( this );
|
||||
|
||||
@ -117,7 +119,7 @@ QgsAdvancedDigitizingFloater::QgsAdvancedDigitizingFloater( QgsMapCanvas *canvas
|
||||
|
||||
bool QgsAdvancedDigitizingFloater::eventFilter( QObject *obj, QEvent *event )
|
||||
{
|
||||
if ( mCadDockWidget->cadEnabled() && mActive )
|
||||
if ( mCadDockWidget && mCadDockWidget->cadEnabled() && mActive )
|
||||
{
|
||||
if ( event->type() == QEvent::MouseMove )
|
||||
{
|
||||
@ -163,7 +165,7 @@ void QgsAdvancedDigitizingFloater::updatePos( const QPoint &pos )
|
||||
|
||||
void QgsAdvancedDigitizingFloater::hideIfDisabled()
|
||||
{
|
||||
if ( ! mCadDockWidget->cadEnabled() || ! mActive )
|
||||
if ( !mCadDockWidget || ! mCadDockWidget->cadEnabled() || ! mActive )
|
||||
{
|
||||
setVisible( false );
|
||||
}
|
||||
|
@ -24,6 +24,8 @@
|
||||
#include "qgis_gui.h"
|
||||
#include "qgis_sip.h"
|
||||
|
||||
#include <QPointer>
|
||||
|
||||
class QgsMapCanvas;
|
||||
class QgsAdvancedDigitizingDockWidget;
|
||||
|
||||
@ -106,7 +108,7 @@ class GUI_EXPORT QgsAdvancedDigitizingFloater : public QWidget, private Ui::QgsA
|
||||
QgsMapCanvas *mMapCanvas = nullptr;
|
||||
|
||||
//! pointer to map cad docker widget
|
||||
QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;
|
||||
QPointer< QgsAdvancedDigitizingDockWidget > mCadDockWidget;
|
||||
|
||||
/**
|
||||
* event filter to track mouse position
|
||||
|
Loading…
x
Reference in New Issue
Block a user