Skip to content

Commit cceb1fb

Browse files
committedAug 9, 2012
Make bar width configurable
1 parent 2c6b152 commit cceb1fb

File tree

5 files changed

+29
-9
lines changed

5 files changed

+29
-9
lines changed
 

‎src/app/qgsvectorlayerproperties.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,8 @@ void QgsVectorLayerProperties::apply()
900900
ds.diagramOrientation = QgsDiagramSettings::Left;
901901
}
902902

903+
ds.barWidth = mBarWidthSpinBox->value();
904+
903905
if ( mFixedSizeCheckBox->isChecked() )
904906
{
905907
QgsSingleCategoryDiagramRenderer* dr = new QgsSingleCategoryDiagramRenderer();
@@ -1748,9 +1750,10 @@ void QgsVectorLayerProperties::initDiagramTab()
17481750
case QgsDiagramSettings::Down:
17491751
mOrientationDownButton->setChecked( true );
17501752
break;
1751-
17521753
}
17531754

1755+
mBarWidthSpinBox->setValue( settingList.at( 0 ).barWidth );
1756+
17541757
mIncreaseSmallDiagramsCheckBox->setChecked( settingList.at( 0 ).minimumSize != 0 );
17551758
mIncreaseMinimumSizeSpinBox->setValue( settingList.at( 0 ).minimumSize );
17561759

‎src/core/qgsdiagram.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,8 @@ void QgsHistogramDiagram::renderDiagram( const QgsAttributeMap& att, QgsRenderCo
351351
values.push_back( currentVal );
352352
}
353353

354-
double currentOffset = 0;
354+
double currentOffset = 0 - ( values.size() * s.barWidth ) / 2;
355+
double scaledWidth = sizePainterUnits( s.barWidth, s, c );
355356

356357
double baseX = position.x();
357358
double baseY = position.y();
@@ -360,8 +361,6 @@ void QgsHistogramDiagram::renderDiagram( const QgsAttributeMap& att, QgsRenderCo
360361
setPenWidth( mPen, s, c );
361362
p->setPen( mPen );
362363

363-
p->drawPoint( baseX, baseY );
364-
365364
QList<double>::const_iterator valIt = values.constBegin();
366365
QList< QColor >::const_iterator colIt = s.categoryColors.constBegin();
367366
for ( ; valIt != values.constEnd(); ++valIt, ++colIt )
@@ -374,22 +373,22 @@ void QgsHistogramDiagram::renderDiagram( const QgsAttributeMap& att, QgsRenderCo
374373
switch ( s.diagramOrientation )
375374
{
376375
case QgsDiagramSettings::Up:
377-
p->drawRect( baseX + currentOffset, baseY, 10, 0 - length );
376+
p->drawRect( baseX + currentOffset, baseY, scaledWidth, 0 - length );
378377
break;
379378

380379
case QgsDiagramSettings::Down:
381-
p->drawRect( baseX + currentOffset, baseY, 10, length );
380+
p->drawRect( baseX + currentOffset, baseY, scaledWidth, length );
382381
break;
383382

384383
case QgsDiagramSettings::Right:
385-
p->drawRect( baseX, baseY + currentOffset, 0 - length, 10 );
384+
p->drawRect( baseX, baseY + currentOffset, 0 - length, scaledWidth );
386385
break;
387386

388387
case QgsDiagramSettings::Left:
389-
p->drawRect( baseX, baseY + currentOffset, length, 10 );
388+
p->drawRect( baseX, baseY + currentOffset, length, scaledWidth );
390389
break;
391390
}
392391

393-
currentOffset += 10;
392+
currentOffset += scaledWidth;
394393
}
395394
}

‎src/core/qgsdiagramrendererv2.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ void QgsDiagramSettings::readXML( const QDomElement& elem )
9393
diagramOrientation = Up;
9494
}
9595

96+
barWidth = elem.attribute( "barWidth" ).toDouble();
97+
9698
minimumSize = elem.attribute( "minimumSize" ).toDouble();
9799

98100
//colors
@@ -170,6 +172,7 @@ void QgsDiagramSettings::writeXML( QDomElement& rendererElem, QDomDocument& doc
170172
break;
171173
}
172174

175+
categoryElem.setAttribute( "barWidth", QString::number( barWidth ) );
173176
categoryElem.setAttribute( "minimumSize", QString::number( minimumSize ) );
174177

175178
QString colors;

‎src/core/qgsdiagramrendererv2.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ struct CORE_EXPORT QgsDiagramSettings
123123
double penWidth;
124124
LabelPlacementMethod labelPlacementMethod;
125125
DiagramOrientation diagramOrientation;
126+
double barWidth;
126127

127128
//scale range (-1 if no lower / upper bound )
128129
double minScaleDenominator;

‎src/ui/qgsvectorlayerpropertiesbase.ui

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1353,6 +1353,20 @@
13531353
</property>
13541354
</spacer>
13551355
</item>
1356+
<item row="6" column="0" colspan="3">
1357+
<layout class="QHBoxLayout" name="mBarWidthLayout">
1358+
<item>
1359+
<widget class="QLabel" name="label_6">
1360+
<property name="text">
1361+
<string>Bar width</string>
1362+
</property>
1363+
</widget>
1364+
</item>
1365+
<item>
1366+
<widget class="QDoubleSpinBox" name="mBarWidthSpinBox"/>
1367+
</item>
1368+
</layout>
1369+
</item>
13561370
</layout>
13571371
</widget>
13581372
</item>

0 commit comments

Comments
 (0)
Please sign in to comment.