Skip to content

Commit b2ca7fa

Browse files
committed
Modernise diagram properties UI:
Switch to stacked widget, QgsScaleRangeWidget, QgsFieldExpression widget, QgsDoubleSpinBoxes. Rearrange and reword controls to clarify their behaviour.
1 parent 16af787 commit b2ca7fa

7 files changed

+322
-490
lines changed

python/core/qgsdiagramrendererv2.sip

+1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class QgsDiagramSettings
8787
bool scaleByArea;
8888
int angleOffset;
8989

90+
bool scaleBasedVisibility;
9091
//scale range (-1 if no lower / upper bound )
9192
double minScaleDenominator;
9293
double maxScaleDenominator;

src/app/qgsdiagramproperties.cpp

+84-110
Large diffs are not rendered by default.

src/app/qgsdiagramproperties.h

-5
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,13 @@ class APP_EXPORT QgsDiagramProperties : public QWidget, private Ui::QgsDiagramPr
3838
public slots:
3939
void apply();
4040
void on_mDiagramTypeComboBox_currentIndexChanged( int index );
41-
void on_mTransparencySlider_valueChanged( int value );
4241
void on_mAddCategoryPushButton_clicked();
4342
void on_mAttributesTreeWidget_itemDoubleClicked( QTreeWidgetItem * item, int column );
4443
void on_mFindMaximumValueButton_clicked();
4544
void on_mRemoveCategoryPushButton_clicked();
4645
void on_mDiagramFontButton_clicked();
4746
void on_mDiagramAttributesTreeWidget_itemDoubleClicked( QTreeWidgetItem * item, int column );
4847
void on_mEngineSettingsButton_clicked();
49-
void showSizeAttributeExpressionDialog();
5048
void showAddAttributeExpressionDialog();
5149
void on_mDiagramStackedWidget_currentChanged( int index );
5250
void on_mPlacementComboBox_currentIndexChanged( int index );
@@ -56,9 +54,6 @@ class APP_EXPORT QgsDiagramProperties : public QWidget, private Ui::QgsDiagramPr
5654

5755
QgsVectorLayer* mLayer;
5856

59-
private:
60-
int mAvailableAttributes;
61-
6257
};
6358

6459
#endif // QGSDIAGRAMPROPERTIES_H

src/core/qgsdiagramrendererv2.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,14 @@ void QgsDiagramSettings::readXML( const QDomElement& elem, const QgsVectorLayer*
9191

9292
minScaleDenominator = elem.attribute( "minScaleDenominator", "-1" ).toDouble();
9393
maxScaleDenominator = elem.attribute( "maxScaleDenominator", "-1" ).toDouble();
94+
if ( elem.hasAttribute( "scaleBasedVisibility" ) )
95+
{
96+
scaleBasedVisibility = ( elem.attribute( "scaleBasedVisibility", "1" ) != "0" );
97+
}
98+
else
99+
{
100+
scaleBasedVisibility = minScaleDenominator >= 0 && maxScaleDenominator >= 0;
101+
}
94102

95103
//mm vs map units
96104
if ( elem.attribute( "sizeType" ) == "MM" )
@@ -199,6 +207,7 @@ void QgsDiagramSettings::writeXML( QDomElement& rendererElem, QDomDocument& doc,
199207
categoryElem.setAttribute( "penColor", penColor.name() );
200208
categoryElem.setAttribute( "penAlpha", penColor.alpha() );
201209
categoryElem.setAttribute( "penWidth", QString::number( penWidth ) );
210+
categoryElem.setAttribute( "scaleBasedVisibility", scaleBasedVisibility );
202211
categoryElem.setAttribute( "minScaleDenominator", QString::number( minScaleDenominator ) );
203212
categoryElem.setAttribute( "maxScaleDenominator", QString::number( maxScaleDenominator ) );
204213
categoryElem.setAttribute( "transparency", QString::number( transparency ) );

src/core/qgsdiagramrendererv2.h

+2
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ class CORE_EXPORT QgsDiagramSettings
120120
, transparency( 0 )
121121
, scaleByArea( true )
122122
, angleOffset( 90 * 16 ) //top
123+
, scaleBasedVisibility( false )
123124
, minScaleDenominator( -1 )
124125
, maxScaleDenominator( -1 )
125126
, minimumSize( 0.0 )
@@ -140,6 +141,7 @@ class CORE_EXPORT QgsDiagramSettings
140141
bool scaleByArea;
141142
int angleOffset;
142143

144+
bool scaleBasedVisibility;
143145
//scale range (-1 if no lower / upper bound )
144146
double minScaleDenominator;
145147
double maxScaleDenominator;

0 commit comments

Comments
 (0)