diff --git a/src/app/qgsrasterlayerproperties.cpp b/src/app/qgsrasterlayerproperties.cpp index ebc098fab77f..5eb7c37cd9ee 100644 --- a/src/app/qgsrasterlayerproperties.cpp +++ b/src/app/qgsrasterlayerproperties.cpp @@ -83,10 +83,17 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer* lyr, QgsMapCanv // set up the scale based layer visibility stuff.... chkUseScaleDependentRendering->setChecked( lyr->hasScaleBasedVisibility() ); - leMinimumScale->setText( QString::number( lyr->minimumScale(), 'f' ) ); - leMinimumScale->setValidator( new QDoubleValidator( 0, std::numeric_limits::max(), 1000, this ) ); - leMaximumScale->setText( QString::number( lyr->maximumScale(), 'f' ) ); - leMaximumScale->setValidator( new QDoubleValidator( 0, std::numeric_limits::max(), 1000, this ) ); + bool projectScales = QgsProject::instance()->readBoolEntry( "Scales", "/useProjectScales" ); + if ( projectScales ) + { + QStringList scalesList = QgsProject::instance()->readListEntry( "Scales", "/ScalesList" ); + cbMinimumScale->updateScales( scalesList ); + cbMaximumScale->updateScales( scalesList ); + } + cbMinimumScale->setScale( 1.0 / lyr->minimumScale() ); + cbMaximumScale->setScale( 1.0 / lyr->maximumScale() ); + + leNoDataValue->setValidator( new QDoubleValidator( -std::numeric_limits::max(), std::numeric_limits::max(), 1000, this ) ); // build GUI components @@ -750,8 +757,8 @@ void QgsRasterLayerProperties::apply() // set up the scale based layer visibility stuff.... mRasterLayer->toggleScaleBasedVisibility( chkUseScaleDependentRendering->isChecked() ); - mRasterLayer->setMinimumScale( leMinimumScale->text().toFloat() ); - mRasterLayer->setMaximumScale( leMaximumScale->text().toFloat() ); + mRasterLayer->setMinimumScale( 1.0 / cbMinimumScale->scale() ); + mRasterLayer->setMaximumScale( 1.0 / cbMaximumScale->scale() ); //update the legend pixmap pixmapLegend->setPixmap( mRasterLayer->legendAsPixmap() ); diff --git a/src/app/qgsvectorlayerproperties.cpp b/src/app/qgsvectorlayerproperties.cpp index 9ade12a9b3a8..487c04521f4f 100644 --- a/src/app/qgsvectorlayerproperties.cpp +++ b/src/app/qgsvectorlayerproperties.cpp @@ -586,10 +586,15 @@ void QgsVectorLayerProperties::reset( void ) // set up the scale based layer visibility stuff.... chkUseScaleDependentRendering->setChecked( layer->hasScaleBasedVisibility() ); - leMinimumScale->setText( QString::number( layer->minimumScale(), 'f' ) ); - leMinimumScale->setValidator( new QDoubleValidator( 0, std::numeric_limits::max(), 1000, this ) ); - leMaximumScale->setText( QString::number( layer->maximumScale(), 'f' ) ); - leMaximumScale->setValidator( new QDoubleValidator( 0, std::numeric_limits::max(), 1000, this ) ); + bool projectScales = QgsProject::instance()->readBoolEntry( "Scales", "/useProjectScales" ); + if ( projectScales ) + { + QStringList scalesList = QgsProject::instance()->readListEntry( "Scales", "/ScalesList" ); + cbMinimumScale->updateScales( scalesList ); + cbMaximumScale->updateScales( scalesList ); + } + cbMinimumScale->setScale( 1.0 / layer->minimumScale() ); + cbMaximumScale->setScale( 1.0 / layer->maximumScale() ); // symbology initialization if ( legendtypecombobox->count() == 0 ) @@ -682,8 +687,8 @@ void QgsVectorLayerProperties::apply() // set up the scale based layer visibility stuff.... layer->toggleScaleBasedVisibility( chkUseScaleDependentRendering->isChecked() ); - layer->setMinimumScale( leMinimumScale->text().toFloat() ); - layer->setMaximumScale( leMaximumScale->text().toFloat() ); + layer->setMinimumScale( 1.0 / cbMinimumScale->scale() ); + layer->setMaximumScale( 1.0 / cbMaximumScale->scale() ); // provider-specific options if ( layer->dataProvider() ) diff --git a/src/core/qgsmaprenderer.cpp b/src/core/qgsmaprenderer.cpp index e150aecf8a2c..9993b92791f8 100644 --- a/src/core/qgsmaprenderer.cpp +++ b/src/core/qgsmaprenderer.cpp @@ -382,7 +382,7 @@ void QgsMapRenderer::render( QPainter* painter, double* forceWidthScale ) .arg( ml->extent().toString() ) ); - if ( !ml->hasScaleBasedVisibility() || ( ml->minimumScale() < mScale && mScale < ml->maximumScale() ) || mOverview ) + if ( !ml->hasScaleBasedVisibility() || ( ml->minimumScale() <= mScale && mScale < ml->maximumScale() ) || mOverview ) { connect( ml, SIGNAL( drawingProgress( int, int ) ), this, SLOT( onDrawingProgress( int, int ) ) ); diff --git a/src/ui/qgsrasterlayerpropertiesbase.ui b/src/ui/qgsrasterlayerpropertiesbase.ui index 1875c2df8df7..00cdae050363 100644 --- a/src/ui/qgsrasterlayerpropertiesbase.ui +++ b/src/ui/qgsrasterlayerpropertiesbase.ui @@ -589,7 +589,7 @@ Qt::RightToLeft - Maximum + Less than: @@ -599,15 +599,15 @@ Qt::RightToLeft - Minimum + More than or equal to: - + - + @@ -1052,8 +1052,8 @@ p, li { white-space: pre-wrap; } tableTransparency leDisplayName leLayerSource - leMinimumScale - leMaximumScale + cbMinimumScale + cbMaximumScale leSpatialRefSys pbnChangeSpatialRefSys tePyramidDescription diff --git a/src/ui/qgsvectorlayerpropertiesbase.ui b/src/ui/qgsvectorlayerpropertiesbase.ui index b39c4fbc6490..477dc2d44cc0 100644 --- a/src/ui/qgsvectorlayerpropertiesbase.ui +++ b/src/ui/qgsvectorlayerpropertiesbase.ui @@ -492,22 +492,22 @@ - Maximum + Less than: - Minimum + More than or equal to: - + - + @@ -968,8 +968,8 @@ pbnIndex - leMinimumScale - leMaximumScale + cbMinimumScale + cbMaximumScale txtSubsetSQL pbnQueryBuilder