Skip to content

Commit 3224608

Browse files
committed
[composer] Don't round down scale for maps if < 1 (fix #9366)
1 parent f46053d commit 3224608

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/app/composer/qgscomposermapwidget.cpp

+18-2
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,24 @@ void QgsComposerMapWidget::updateGuiElements()
420420
blockAllSignals( true );
421421

422422
//width, height, scale
423-
// QRectF composerMapRect = mComposerMap->rect();
424-
mScaleLineEdit->setText( QString::number( mComposerMap->scale(), 'f', 0 ) );
423+
double scale = mComposerMap->scale();
424+
425+
//round scale to an appropriate number of decimal places
426+
if ( scale >= 10 )
427+
{
428+
//round scale to integer if it's greater than 10
429+
mScaleLineEdit->setText( QString::number( mComposerMap->scale(), 'f', 0 ) );
430+
}
431+
else if ( scale >= 1 )
432+
{
433+
//don't round scale if it's less than 10, instead use 4 decimal places
434+
mScaleLineEdit->setText( QString::number( mComposerMap->scale(), 'f', 4 ) );
435+
}
436+
else
437+
{
438+
//if scale < 1 then use 10 decimal places
439+
mScaleLineEdit->setText( QString::number( mComposerMap->scale(), 'f', 10 ) );
440+
}
425441

426442
//preview mode
427443
QgsComposerMap::PreviewMode previewMode = mComposerMap->previewMode();

src/core/composer/qgscomposermap.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,7 @@ void QgsComposerMap::setNewScale( double scaleDenominator )
781781
{
782782
double currentScaleDenominator = scale();
783783

784-
if ( scaleDenominator == currentScaleDenominator )
784+
if ( scaleDenominator == currentScaleDenominator || scaleDenominator == 0 )
785785
{
786786
return;
787787
}

0 commit comments

Comments
 (0)