@@ -123,8 +123,12 @@ void QgsMapToolAdvancedDigitizing::activate()
123
123
connect ( mCadDockWidget , &QgsAdvancedDigitizingDockWidget::pointChanged, this , &QgsMapToolAdvancedDigitizing::cadPointChanged );
124
124
mCadDockWidget ->enable ();
125
125
mSnapToGridCanvasItem = new QgsSnapToGridCanvasItem ( mCanvas );
126
- mSnapToGridCanvasItem ->setCrs ( currentVectorLayer ()->crs () );
127
- mSnapToGridCanvasItem ->setPrecision ( currentVectorLayer ()->geometryFixes ()->geometryPrecision () );
126
+ QgsVectorLayer *layer = currentVectorLayer ();
127
+ if ( layer )
128
+ {
129
+ mSnapToGridCanvasItem ->setCrs ( currentVectorLayer ()->crs () );
130
+ mSnapToGridCanvasItem ->setPrecision ( currentVectorLayer ()->geometryFixes ()->geometryPrecision () );
131
+ }
128
132
mSnapToGridCanvasItem ->setEnabled ( mSnapToGridEnabled );
129
133
}
130
134
@@ -146,16 +150,20 @@ void QgsMapToolAdvancedDigitizing::cadPointChanged( const QgsPointXY &point )
146
150
147
151
void QgsMapToolAdvancedDigitizing::onCurrentLayerChanged ()
148
152
{
149
- QgsVectorLayer *layer = currentVectorLayer ();
150
- if ( mSnapToGridCanvasItem && layer && mSnapToGridEnabled )
153
+ if ( mSnapToGridCanvasItem )
151
154
{
152
- mSnapToGridCanvasItem ->setPrecision ( layer->geometryFixes ()->geometryPrecision () );
153
- mSnapToGridCanvasItem ->setCrs ( layer->crs () );
154
- mSnapToGridCanvasItem ->setEnabled ( true );
155
- }
155
+ QgsVectorLayer *layer = currentVectorLayer ();
156
+ if ( layer && mSnapToGridEnabled )
157
+ {
158
+ mSnapToGridCanvasItem ->setPrecision ( layer->geometryFixes ()->geometryPrecision () );
159
+ mSnapToGridCanvasItem ->setCrs ( layer->crs () );
160
+ }
156
161
157
- if ( !layer )
158
- mSnapToGridCanvasItem ->setEnabled ( false );
162
+ if ( !layer )
163
+ mSnapToGridCanvasItem ->setEnabled ( false );
164
+ else
165
+ mSnapToGridCanvasItem ->setEnabled ( mSnapToGridEnabled );
166
+ }
159
167
}
160
168
161
169
bool QgsMapToolAdvancedDigitizing::snapToGridEnabled () const
0 commit comments