@@ -44,6 +44,7 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa
44
44
45
45
setWindowTitle ( name );
46
46
mMapCanvas = new QgsMapCanvas ( this );
47
+
47
48
mPanTool = new QgsMapToolPan ( mMapCanvas );
48
49
mMapCanvas ->setMapTool ( mPanTool );
49
50
@@ -53,7 +54,11 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa
53
54
54
55
mMainWidget ->layout ()->addWidget ( mMapCanvas );
55
56
56
- connect ( mActionSyncView , &QAction::toggled, this , &QgsMapCanvasDockWidget::syncView );
57
+ connect ( mActionSyncView , &QAction::toggled, this , [ = ]( bool active )
58
+ {
59
+ syncViewExtent ( mMainCanvas );
60
+ syncView ( active );
61
+ } );
57
62
58
63
mMenu = new QMenu ();
59
64
connect ( mMenu , &QMenu::aboutToShow, this , &QgsMapCanvasDockWidget::menuAboutToShow );
@@ -212,12 +217,8 @@ void QgsMapCanvasDockWidget::syncView( bool enabled )
212
217
}
213
218
}
214
219
215
- void QgsMapCanvasDockWidget::mapExtentChanged ( )
220
+ void QgsMapCanvasDockWidget::syncViewExtent ( QgsMapCanvas *sourceCanvas )
216
221
{
217
- QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender () );
218
- if ( !sourceCanvas )
219
- return ;
220
-
221
222
// avoid infinite recursion
222
223
syncView ( false );
223
224
@@ -239,6 +240,15 @@ void QgsMapCanvasDockWidget::mapExtentChanged()
239
240
syncView ( true );
240
241
}
241
242
243
+ void QgsMapCanvasDockWidget::mapExtentChanged ()
244
+ {
245
+ QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender () );
246
+ if ( !sourceCanvas )
247
+ return ;
248
+
249
+ syncViewExtent ( sourceCanvas );
250
+ }
251
+
242
252
void QgsMapCanvasDockWidget::mapCrsChanged ()
243
253
{
244
254
mActionSetCrs ->setText ( tr ( " Change Map CRS (%1)" ).arg ( mMapCanvas ->mapSettings ().destinationCrs ().isValid () ?
0 commit comments