Skip to content

Commit d5be855

Browse files
committed
Fix relationship between scale<->extent in the save [canvas] as image/pdf dialog
1 parent 34de184 commit d5be855

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/app/qgsmapsavedialog.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ QgsMapSaveDialog::QgsMapSaveDialog( QWidget *parent, QgsMapCanvas *mapCanvas, co
8181
}
8282
mDrawDecorations->setText( tr( "Draw active decorations: %1" ).arg( !activeDecorations.isEmpty() ? activeDecorations : tr( "none" ) ) );
8383

84-
connect( mResolutionSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, &QgsMapSaveDialog::updateDpi );
85-
connect( mOutputWidthSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, &QgsMapSaveDialog::updateOutputWidth );
86-
connect( mOutputHeightSpinBox, static_cast < void ( QSpinBox::* )( int ) > ( &QSpinBox::valueChanged ), this, &QgsMapSaveDialog::updateOutputHeight );
84+
connect( mResolutionSpinBox, &QSpinBox::editingFinished, this, [ = ] { updateDpi( mResolutionSpinBox->value() ); } );
85+
connect( mOutputWidthSpinBox, &QSpinBox::editingFinished, this, [ = ] { updateOutputWidth( mOutputWidthSpinBox->value() );} );
86+
connect( mOutputHeightSpinBox, &QSpinBox::editingFinished, this, [ = ] { updateOutputWidth( mOutputHeightSpinBox->value() );} );
8787
connect( mExtentGroupBox, &QgsExtentGroupBox::extentChanged, this, &QgsMapSaveDialog::updateExtent );
8888
connect( mScaleWidget, &QgsScaleWidget::scaleChanged, this, &QgsMapSaveDialog::updateScale );
8989
connect( mLockAspectRatio, &QgsRatioLockButton::lockChanged, this, &QgsMapSaveDialog::lockChanged );
@@ -229,7 +229,7 @@ void QgsMapSaveDialog::updateScale( double scale )
229229
calculator.setMapUnits( mExtentGroupBox->currentCrs().mapUnits() );
230230
calculator.setDpi( mDpi );
231231

232-
double oldScale = 1 / ( calculator.calculate( mExtent, mSize.width() ) );
232+
double oldScale = calculator.calculate( mExtent, mSize.width() );
233233
double scaleRatio = scale / oldScale;
234234
mExtent.scale( scaleRatio );
235235
mExtentGroupBox->setOutputExtentFromUser( mExtent, mExtentGroupBox->currentCrs() );
@@ -298,6 +298,7 @@ void QgsMapSaveDialog::applyMapSettings( QgsMapSettings &mapSettings )
298298
mapSettings.setOutputDpi( dpi() );
299299
mapSettings.setBackgroundColor( mMapCanvas->canvasColor() );
300300
mapSettings.setRotation( mMapCanvas->rotation() );
301+
mapSettings.setEllipsoid( QgsProject::instance()->ellipsoid() );
301302
mapSettings.setLayers( mMapCanvas->layers() );
302303
mapSettings.setLabelingEngineSettings( mMapCanvas->mapSettings().labelingEngineSettings() );
303304
mapSettings.setTransformContext( QgsProject::instance()->transformContext() );

0 commit comments

Comments
 (0)