diff --git a/python/gui/auto_generated/qgsscalerangewidget.sip.in b/python/gui/auto_generated/qgsscalerangewidget.sip.in index 2f7616a06a9..ad3da5efb2f 100644 --- a/python/gui/auto_generated/qgsscalerangewidget.sip.in +++ b/python/gui/auto_generated/qgsscalerangewidget.sip.in @@ -68,6 +68,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. .. seealso:: :py:func:`setMaximumScale` .. seealso:: :py:func:`setScaleRange` + +.. warning:: + + Calling setMinimumScale() places a restriction on the acceptable maximum scale for the + widget, and will alter any previously set maximum scale to pass this constraint. Always + call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or + use the convenience method setScaleRange() instead. %End void setMaximumScale( double scale ); @@ -80,6 +87,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. .. seealso:: :py:func:`setMinimumScale` .. seealso:: :py:func:`setScaleRange` + +.. warning:: + + Calling setMinimumScale() places a restriction on the acceptable maximum scale for the + widget, and will alter any previously set maximum scale to pass this constraint. Always + call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or + use the convenience method setScaleRange() instead. %End void setScaleRange( double min, double max ); diff --git a/src/app/qgsrulebasedlabelingwidget.cpp b/src/app/qgsrulebasedlabelingwidget.cpp index cc94d8b28c8..d35fd3154ac 100644 --- a/src/app/qgsrulebasedlabelingwidget.cpp +++ b/src/app/qgsrulebasedlabelingwidget.cpp @@ -599,8 +599,8 @@ QgsLabelingRulePropsWidget::QgsLabelingRulePropsWidget( QgsRuleBasedLabeling::Ru { groupScale->setChecked( true ); // caution: rule uses scale denom, scale widget uses true scales - mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) ); - mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) ); + mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ), + std::max( rule->maximumScale(), 0.0 ) ); } mScaleRangeWidget->setMapCanvas( mMapCanvas ); diff --git a/src/gui/qgsscalerangewidget.h b/src/gui/qgsscalerangewidget.h index e6bd44e31a9..08b003d22b7 100644 --- a/src/gui/qgsscalerangewidget.h +++ b/src/gui/qgsscalerangewidget.h @@ -77,6 +77,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget * \see minimumScale() * \see setMaximumScale() * \see setScaleRange() + * + * \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the + * widget, and will alter any previously set maximum scale to pass this constraint. Always + * call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or + * use the convenience method setScaleRange() instead. */ void setMinimumScale( double scale ); @@ -86,6 +91,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget * \see maximumScale() * \see setMinimumScale() * \see setScaleRange() + * + * \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the + * widget, and will alter any previously set maximum scale to pass this constraint. Always + * call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or + * use the convenience method setScaleRange() instead. */ void setMaximumScale( double scale ); diff --git a/src/gui/symbology/qgsrulebasedrendererwidget.cpp b/src/gui/symbology/qgsrulebasedrendererwidget.cpp index 2e61278cfec..60572c84f04 100644 --- a/src/gui/symbology/qgsrulebasedrendererwidget.cpp +++ b/src/gui/symbology/qgsrulebasedrendererwidget.cpp @@ -659,8 +659,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRenderer::Ru if ( mRule->dependsOnScale() ) { groupScale->setChecked( true ); - mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) ); - mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) ); + mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ), + std::max( rule->maximumScale(), 0.0 ) ); } mScaleRangeWidget->setMapCanvas( mContext.mapCanvas() );