Skip to content

Commit 3794613

Browse files
committedMay 23, 2019
Fix rule based label/symbol renderers reset max scale for rules to
1:100000 And improve dox Fixes #21845
1 parent 2e114ad commit 3794613

File tree

4 files changed

+28
-4
lines changed

4 files changed

+28
-4
lines changed
 

‎python/gui/auto_generated/qgsscalerangewidget.sip.in

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.
6868
.. seealso:: :py:func:`setMaximumScale`
6969

7070
.. seealso:: :py:func:`setScaleRange`
71+
72+
.. warning::
73+
74+
Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
75+
widget, and will alter any previously set maximum scale to pass this constraint. Always
76+
call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
77+
use the convenience method setScaleRange() instead.
7178
%End
7279

7380
void setMaximumScale( double scale );
@@ -80,6 +87,13 @@ The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.
8087
.. seealso:: :py:func:`setMinimumScale`
8188

8289
.. seealso:: :py:func:`setScaleRange`
90+
91+
.. warning::
92+
93+
Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
94+
widget, and will alter any previously set maximum scale to pass this constraint. Always
95+
call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
96+
use the convenience method setScaleRange() instead.
8397
%End
8498

8599
void setScaleRange( double min, double max );

‎src/app/qgsrulebasedlabelingwidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,8 @@ QgsLabelingRulePropsWidget::QgsLabelingRulePropsWidget( QgsRuleBasedLabeling::Ru
596596
{
597597
groupScale->setChecked( true );
598598
// caution: rule uses scale denom, scale widget uses true scales
599-
mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) );
600-
mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) );
599+
mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ),
600+
std::max( rule->maximumScale(), 0.0 ) );
601601
}
602602
mScaleRangeWidget->setMapCanvas( mMapCanvas );
603603

‎src/gui/qgsscalerangewidget.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget
7777
* \see minimumScale()
7878
* \see setMaximumScale()
7979
* \see setScaleRange()
80+
*
81+
* \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
82+
* widget, and will alter any previously set maximum scale to pass this constraint. Always
83+
* call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
84+
* use the convenience method setScaleRange() instead.
8085
*/
8186
void setMinimumScale( double scale );
8287

@@ -86,6 +91,11 @@ class GUI_EXPORT QgsScaleRangeWidget : public QWidget
8691
* \see maximumScale()
8792
* \see setMinimumScale()
8893
* \see setScaleRange()
94+
*
95+
* \warning Calling setMinimumScale() places a restriction on the acceptable maximum scale for the
96+
* widget, and will alter any previously set maximum scale to pass this constraint. Always
97+
* call setMinimumScale() before setMaximumScale() when restoring a scale range in the widget, or
98+
* use the convenience method setScaleRange() instead.
8999
*/
90100
void setMaximumScale( double scale );
91101

‎src/gui/symbology/qgsrulebasedrendererwidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -647,8 +647,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRenderer::Ru
647647
if ( mRule->dependsOnScale() )
648648
{
649649
groupScale->setChecked( true );
650-
mScaleRangeWidget->setMaximumScale( std::max( rule->maximumScale(), 0.0 ) );
651-
mScaleRangeWidget->setMinimumScale( std::max( rule->minimumScale(), 0.0 ) );
650+
mScaleRangeWidget->setScaleRange( std::max( rule->minimumScale(), 0.0 ),
651+
std::max( rule->maximumScale(), 0.0 ) );
652652
}
653653
mScaleRangeWidget->setMapCanvas( mContext.mapCanvas() );
654654

0 commit comments

Comments
 (0)
Please sign in to comment.