Skip to content

Commit b279900

Browse files
committed
Refresh map extent when activating sync extent mode
1 parent ea10cc6 commit b279900

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

src/app/qgsmapcanvasdockwidget.cpp

+16-6
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa
4444

4545
setWindowTitle( name );
4646
mMapCanvas = new QgsMapCanvas( this );
47+
4748
mPanTool = new QgsMapToolPan( mMapCanvas );
4849
mMapCanvas->setMapTool( mPanTool );
4950

@@ -53,7 +54,11 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa
5354

5455
mMainWidget->layout()->addWidget( mMapCanvas );
5556

56-
connect( mActionSyncView, &QAction::toggled, this, &QgsMapCanvasDockWidget::syncView );
57+
connect( mActionSyncView, &QAction::toggled, this, [ = ]( bool active )
58+
{
59+
syncViewExtent( mMainCanvas );
60+
syncView( active );
61+
} );
5762

5863
mMenu = new QMenu();
5964
connect( mMenu, &QMenu::aboutToShow, this, &QgsMapCanvasDockWidget::menuAboutToShow );
@@ -212,12 +217,8 @@ void QgsMapCanvasDockWidget::syncView( bool enabled )
212217
}
213218
}
214219

215-
void QgsMapCanvasDockWidget::mapExtentChanged()
220+
void QgsMapCanvasDockWidget::syncViewExtent( QgsMapCanvas *sourceCanvas )
216221
{
217-
QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender() );
218-
if ( !sourceCanvas )
219-
return;
220-
221222
// avoid infinite recursion
222223
syncView( false );
223224

@@ -239,6 +240,15 @@ void QgsMapCanvasDockWidget::mapExtentChanged()
239240
syncView( true );
240241
}
241242

243+
void QgsMapCanvasDockWidget::mapExtentChanged()
244+
{
245+
QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender() );
246+
if ( !sourceCanvas )
247+
return;
248+
249+
syncViewExtent( sourceCanvas );
250+
}
251+
242252
void QgsMapCanvasDockWidget::mapCrsChanged()
243253
{
244254
mActionSetCrs->setText( tr( "Change Map CRS (%1)" ).arg( mMapCanvas->mapSettings().destinationCrs().isValid() ?

src/app/qgsmapcanvasdockwidget.h

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class APP_EXPORT QgsMapCanvasDockWidget : public QgsDockWidget, private Ui::QgsM
8585
bool mBlockRotationUpdate = false;
8686
bool mBlockMagnificationUpdate = false;
8787
QgsMapToolPan *mPanTool = nullptr;
88+
void syncViewExtent( QgsMapCanvas *sourceCanvas );
8889
};
8990

9091
/**

0 commit comments

Comments
 (0)