@@ -88,33 +88,24 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
88
88
{
89
89
mPlacementComboBox ->addItem ( tr ( " Around Point" ), QgsDiagramLayerSettings::AroundPoint );
90
90
mPlacementComboBox ->addItem ( tr ( " Over Point" ), QgsDiagramLayerSettings::OverPoint );
91
+ mPlacementFrame ->setVisible ( true );
92
+ mLinePlacementFrame ->setVisible ( false );
91
93
}
92
94
93
- if ( layerType == QGis::Line || layerType == QGis::Polygon )
95
+ if ( layerType == QGis::Line )
94
96
{
95
- mPlacementComboBox -> addItem ( tr ( " Line " ), QgsDiagramLayerSettings::Line );
96
- mPlacementComboBox -> addItem ( tr ( " Horizontal " ), QgsDiagramLayerSettings::Horizontal );
97
+ mPlacementFrame -> setVisible ( false );
98
+ mLinePlacementFrame -> setVisible ( true );
97
99
}
98
100
99
101
if ( layerType == QGis::Polygon )
100
102
{
103
+ mPlacementComboBox ->addItem ( tr ( " Line" ), QgsDiagramLayerSettings::Line );
104
+ mPlacementComboBox ->addItem ( tr ( " Horizontal" ), QgsDiagramLayerSettings::Horizontal );
101
105
mPlacementComboBox ->addItem ( tr ( " Free" ), QgsDiagramLayerSettings::Free );
102
106
}
103
107
mPlacementComboBox ->blockSignals ( false );
104
108
105
- if ( layerType == QGis::Line )
106
- {
107
- mLineOptionsComboBox ->addItem ( tr ( " On line" ), QgsDiagramLayerSettings::OnLine );
108
- mLineOptionsComboBox ->addItem ( tr ( " Above line" ), QgsDiagramLayerSettings::AboveLine );
109
- mLineOptionsComboBox ->addItem ( tr ( " Below Line" ), QgsDiagramLayerSettings::BelowLine );
110
- mLineOptionsComboBox ->addItem ( tr ( " Map orientation" ), QgsDiagramLayerSettings::MapOrientation );
111
- }
112
- else
113
- {
114
- mLineOptionsComboBox ->setVisible ( false );
115
- mLineOptionsLabel ->setVisible ( false );
116
- }
117
-
118
109
mDiagramTypeComboBox ->blockSignals ( true );
119
110
QPixmap pix = QgsApplication::getThemePixmap ( " pie-chart" );
120
111
mDiagramTypeComboBox ->addItem ( pix, tr ( " Pie chart" ), DIAGRAM_NAME_PIE );
@@ -186,7 +177,7 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
186
177
mDiagramUnitComboBox ->setCurrentIndex ( mDiagramUnitComboBox ->findText ( tr ( " mm" ) ) );
187
178
mLabelPlacementComboBox ->setCurrentIndex ( mLabelPlacementComboBox ->findText ( tr ( " x-height" ) ) );
188
179
mDiagramSizeSpinBox ->setEnabled ( true );
189
- mDiagramSizeSpinBox ->setValue ( 30 );
180
+ mDiagramSizeSpinBox ->setValue ( 15 );
190
181
mLinearScaleFrame ->setEnabled ( false );
191
182
mIncreaseMinimumSizeSpinBox ->setEnabled ( false );
192
183
mIncreaseMinimumSizeLabel ->setEnabled ( false );
@@ -199,14 +190,17 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
199
190
switch ( layerType )
200
191
{
201
192
case QGis::Point :
202
- mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( 0 ) );
193
+ mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( QgsDiagramLayerSettings::AroundPoint ) );
203
194
break ;
204
195
case QGis::Line:
205
- mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( 3 ) );
206
- mLineOptionsComboBox ->setCurrentIndex ( mLineOptionsComboBox ->findData ( 2 ) );
196
+ mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( QgsDiagramLayerSettings::Line ) );
197
+ chkLineAbove->setChecked ( true );
198
+ chkLineBelow->setChecked ( false );
199
+ chkLineOn->setChecked ( false );
200
+ chkLineOrientationDependent->setChecked ( false );
207
201
break ;
208
202
case QGis::Polygon:
209
- mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( 0 ) );
203
+ mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( QgsDiagramLayerSettings::AroundPoint ) );
210
204
break ;
211
205
case QGis::UnknownGeometry:
212
206
case QGis::NoGeometry:
@@ -360,7 +354,13 @@ QgsDiagramProperties::QgsDiagramProperties( QgsVectorLayer* layer, QWidget* pare
360
354
mDataDefinedPositionGroupBox ->setChecked ( true );
361
355
}
362
356
mPlacementComboBox ->setCurrentIndex ( mPlacementComboBox ->findData ( dls->placement ) );
363
- mLineOptionsComboBox ->setCurrentIndex ( mLineOptionsComboBox ->findData ( dls->placementFlags ) );
357
+
358
+ chkLineAbove->setChecked ( dls->placementFlags & QgsDiagramLayerSettings::AboveLine );
359
+ chkLineBelow->setChecked ( dls->placementFlags & QgsDiagramLayerSettings::BelowLine );
360
+ chkLineOn->setChecked ( dls->placementFlags & QgsDiagramLayerSettings::OnLine );
361
+ if ( !( dls->placementFlags & QgsDiagramLayerSettings::MapOrientation ) )
362
+ chkLineOrientationDependent->setChecked ( true );
363
+
364
364
mShowAllCheckBox ->setChecked ( dls->showAll );
365
365
}
366
366
@@ -727,10 +727,17 @@ void QgsDiagramProperties::apply()
727
727
dls.yPosColumn = -1 ;
728
728
}
729
729
dls.placement = ( QgsDiagramLayerSettings::Placement )mPlacementComboBox ->itemData ( mPlacementComboBox ->currentIndex () ).toInt ();
730
- if ( mLineOptionsComboBox ->isEnabled () )
731
- {
732
- dls.placementFlags = static_cast <QgsDiagramLayerSettings::LinePlacementFlags>( mLineOptionsComboBox ->itemData ( mLineOptionsComboBox ->currentIndex () ).toInt () );
733
- }
730
+
731
+ dls.placementFlags = ( QgsDiagramLayerSettings::LinePlacementFlags )0 ;
732
+ if ( chkLineAbove->isChecked () )
733
+ dls.placementFlags |= QgsDiagramLayerSettings::AboveLine;
734
+ if ( chkLineBelow->isChecked () )
735
+ dls.placementFlags |= QgsDiagramLayerSettings::BelowLine;
736
+ if ( chkLineOn->isChecked () )
737
+ dls.placementFlags |= QgsDiagramLayerSettings::OnLine;
738
+ if ( ! chkLineOrientationDependent->isChecked () )
739
+ dls.placementFlags |= QgsDiagramLayerSettings::MapOrientation;
740
+
734
741
mLayer ->setDiagramLayerSettings ( dls );
735
742
}
736
743
0 commit comments