Skip to content

Commit

Permalink
Refresh map extent when activating sync extent mode
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Mar 13, 2017
1 parent ea10cc6 commit b279900
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
22 changes: 16 additions & 6 deletions src/app/qgsmapcanvasdockwidget.cpp
Expand Up @@ -44,6 +44,7 @@ QgsMapCanvasDockWidget::QgsMapCanvasDockWidget( const QString &name, QWidget *pa

setWindowTitle( name );
mMapCanvas = new QgsMapCanvas( this );

mPanTool = new QgsMapToolPan( mMapCanvas );
mMapCanvas->setMapTool( mPanTool );

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

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

connect( mActionSyncView, &QAction::toggled, this, &QgsMapCanvasDockWidget::syncView );
connect( mActionSyncView, &QAction::toggled, this, [ = ]( bool active )
{
syncViewExtent( mMainCanvas );
syncView( active );
} );

mMenu = new QMenu();
connect( mMenu, &QMenu::aboutToShow, this, &QgsMapCanvasDockWidget::menuAboutToShow );
Expand Down Expand Up @@ -212,12 +217,8 @@ void QgsMapCanvasDockWidget::syncView( bool enabled )
}
}

void QgsMapCanvasDockWidget::mapExtentChanged()
void QgsMapCanvasDockWidget::syncViewExtent( QgsMapCanvas *sourceCanvas )
{
QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender() );
if ( !sourceCanvas )
return;

// avoid infinite recursion
syncView( false );

Expand All @@ -239,6 +240,15 @@ void QgsMapCanvasDockWidget::mapExtentChanged()
syncView( true );
}

void QgsMapCanvasDockWidget::mapExtentChanged()
{
QgsMapCanvas *sourceCanvas = qobject_cast< QgsMapCanvas * >( sender() );
if ( !sourceCanvas )
return;

syncViewExtent( sourceCanvas );
}

void QgsMapCanvasDockWidget::mapCrsChanged()
{
mActionSetCrs->setText( tr( "Change Map CRS (%1)" ).arg( mMapCanvas->mapSettings().destinationCrs().isValid() ?
Expand Down
1 change: 1 addition & 0 deletions src/app/qgsmapcanvasdockwidget.h
Expand Up @@ -85,6 +85,7 @@ class APP_EXPORT QgsMapCanvasDockWidget : public QgsDockWidget, private Ui::QgsM
bool mBlockRotationUpdate = false;
bool mBlockMagnificationUpdate = false;
QgsMapToolPan *mPanTool = nullptr;
void syncViewExtent( QgsMapCanvas *sourceCanvas );
};

/**
Expand Down

0 comments on commit b279900

Please sign in to comment.