Skip to content

Commit 558611b

Browse files
committed
[FEATURE] Add pixels as option for all symbology size unit choices
1 parent f0a2fc1 commit 558611b

6 files changed

+84
-73
lines changed

src/core/symbology-ng/qgssymbollayerv2utils.cpp

+49-37
Original file line numberDiff line numberDiff line change
@@ -3267,63 +3267,75 @@ QColor QgsSymbolLayerV2Utils::parseColorWithAlpha( const QString colorStr, bool
32673267

32683268
double QgsSymbolLayerV2Utils::lineWidthScaleFactor( const QgsRenderContext& c, QgsSymbolV2::OutputUnit u, const QgsMapUnitScale& scale )
32693269
{
3270-
3271-
if ( u == QgsSymbolV2::MM )
3272-
{
3273-
return c.scaleFactor();
3274-
}
3275-
else //QgsSymbol::MapUnit
3270+
switch ( u )
32763271
{
3277-
double mup = scale.computeMapUnitsPerPixel( c );
3278-
if ( mup > 0 )
3272+
case QgsSymbolV2::MM:
3273+
return c.scaleFactor();
3274+
case QgsSymbolV2::MapUnit:
32793275
{
3280-
return 1.0 / mup;
3276+
double mup = scale.computeMapUnitsPerPixel( c );
3277+
if ( mup > 0 )
3278+
{
3279+
return 1.0 / mup;
3280+
}
3281+
else
3282+
{
3283+
return 1.0;
3284+
}
32813285
}
3282-
else
3283-
{
3286+
case QgsSymbolV2::Pixel:
3287+
return 1.0 / c.rasterScaleFactor();
3288+
case QgsSymbolV2::Mixed:
3289+
//no sensible value
32843290
return 1.0;
3285-
}
32863291
}
3292+
return 1.0;
32873293
}
32883294

32893295
double QgsSymbolLayerV2Utils::pixelSizeScaleFactor( const QgsRenderContext& c, QgsSymbolV2::OutputUnit u, const QgsMapUnitScale& scale )
32903296
{
3291-
if ( u == QgsSymbolV2::MM )
3292-
{
3293-
return ( c.scaleFactor() * c.rasterScaleFactor() );
3294-
}
3295-
else if ( u == QgsSymbolV2::Pixel )
3297+
switch ( u )
32963298
{
3297-
return 1.0;
3298-
}
3299-
else //QgsSymbol::MapUnit
3300-
{
3301-
double mup = scale.computeMapUnitsPerPixel( c );
3302-
if ( mup > 0 )
3299+
case QgsSymbolV2::MM:
3300+
return ( c.scaleFactor() * c.rasterScaleFactor() );
3301+
case QgsSymbolV2::MapUnit:
33033302
{
3304-
return c.rasterScaleFactor() / mup;
3303+
double mup = scale.computeMapUnitsPerPixel( c );
3304+
if ( mup > 0 )
3305+
{
3306+
return c.rasterScaleFactor() / mup;
3307+
}
3308+
else
3309+
{
3310+
return 1.0;
3311+
}
33053312
}
3306-
else
3307-
{
3313+
case QgsSymbolV2::Pixel:
3314+
return 1.0;
3315+
case QgsSymbolV2::Mixed:
3316+
//no sensible value
33083317
return 1.0;
3309-
}
33103318
}
3319+
return 1.0;
33113320
}
33123321

33133322
double QgsSymbolLayerV2Utils::mapUnitScaleFactor( const QgsRenderContext &c, QgsSymbolV2::OutputUnit u, const QgsMapUnitScale &scale )
33143323
{
3315-
if ( u == QgsSymbolV2::MM )
3316-
{
3317-
return scale.computeMapUnitsPerPixel( c ) * c.scaleFactor() * c.rasterScaleFactor();
3318-
}
3319-
else if ( u == QgsSymbolV2::MapUnit )
3320-
{
3321-
return 1.0;
3322-
}
3323-
else //QgsSymbol::Pixel
3324+
switch ( u )
33243325
{
3325-
return scale.computeMapUnitsPerPixel( c );
3326+
case QgsSymbolV2::MM:
3327+
return scale.computeMapUnitsPerPixel( c ) * c.scaleFactor() * c.rasterScaleFactor();
3328+
case QgsSymbolV2::MapUnit:
3329+
{
3330+
return 1.0;
3331+
}
3332+
case QgsSymbolV2::Pixel:
3333+
return scale.computeMapUnitsPerPixel( c );
3334+
case QgsSymbolV2::Mixed:
3335+
//no sensible value
3336+
return 1.0;
33263337
}
3338+
return 1.0;
33273339
}
33283340

33293341
QgsRenderContext QgsSymbolLayerV2Utils::createRenderContext( QPainter* p )

src/gui/symbology-ng/qgsellipsesymbollayerv2widget.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ QgsEllipseSymbolLayerV2Widget::QgsEllipseSymbolLayerV2Widget( const QgsVectorLay
2525
{
2626
setupUi( this );
2727

28-
mSymbolWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
29-
mSymbolHeightUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
30-
mOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
31-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
28+
mSymbolWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
29+
mSymbolHeightUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
30+
mOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
31+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
3232

3333
btnChangeColorFill->setAllowAlpha( true );
3434
btnChangeColorFill->setColorDialogTitle( tr( "Select fill color" ) );

src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -430,8 +430,7 @@ QgsGraduatedSymbolRendererV2Widget::QgsGraduatedSymbolRendererV2Widget( QgsVecto
430430
mExpressionWidget->setFilters( QgsFieldProxyModel::Numeric | QgsFieldProxyModel::Date );
431431
mExpressionWidget->setLayer( mLayer );
432432

433-
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
434-
433+
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
435434

436435
cboGraduatedColorRamp->populate( mStyle );
437436

src/gui/symbology-ng/qgssymbollayerv2widget.cpp

+28-28
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ QgsSimpleLineSymbolLayerV2Widget::QgsSimpleLineSymbolLayerV2Widget( const QgsVec
151151
mLayer = NULL;
152152

153153
setupUi( this );
154-
mPenWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
155-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
156-
mDashPatternUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
154+
mPenWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
155+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
156+
mDashPatternUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
157157

158158
btnChangeColor->setAllowAlpha( true );
159159
btnChangeColor->setColorDialogTitle( tr( "Select line color" ) );
@@ -367,9 +367,9 @@ QgsSimpleMarkerSymbolLayerV2Widget::QgsSimpleMarkerSymbolLayerV2Widget( const Qg
367367
mLayer = NULL;
368368

369369
setupUi( this );
370-
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
371-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
372-
mOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
370+
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
371+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
372+
mOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
373373

374374
btnChangeColorFill->setAllowAlpha( true );
375375
btnChangeColorFill->setColorDialogTitle( tr( "Select fill color" ) );
@@ -634,8 +634,8 @@ QgsSimpleFillSymbolLayerV2Widget::QgsSimpleFillSymbolLayerV2Widget( const QgsVec
634634
mLayer = NULL;
635635

636636
setupUi( this );
637-
mBorderWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
638-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
637+
mBorderWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
638+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
639639

640640
btnChangeColor->setAllowAlpha( true );
641641
btnChangeColor->setColorDialogTitle( tr( "Select fill color" ) );
@@ -783,7 +783,7 @@ QgsGradientFillSymbolLayerV2Widget::QgsGradientFillSymbolLayerV2Widget( const Qg
783783
mLayer = NULL;
784784

785785
setupUi( this );
786-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
786+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
787787

788788
cboGradientColorRamp->setShowGradientOnly( true );
789789
cboGradientColorRamp->populate( QgsStyleV2::defaultStyle() );
@@ -1114,8 +1114,8 @@ QgsShapeburstFillSymbolLayerV2Widget::QgsShapeburstFillSymbolLayerV2Widget( cons
11141114
mLayer = NULL;
11151115

11161116
setupUi( this );
1117-
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1118-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1117+
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
1118+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
11191119

11201120
btnChangeColor->setAllowAlpha( true );
11211121
btnChangeColor->setColorDialogTitle( tr( "Select gradient color" ) );
@@ -1363,9 +1363,9 @@ QgsMarkerLineSymbolLayerV2Widget::QgsMarkerLineSymbolLayerV2Widget( const QgsVec
13631363
mLayer = NULL;
13641364

13651365
setupUi( this );
1366-
mIntervalUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1367-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1368-
mOffsetAlongLineUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1366+
mIntervalUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
1367+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
1368+
mOffsetAlongLineUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
13691369

13701370
spinOffset->setClearValue( 0.0 );
13711371

@@ -1527,9 +1527,9 @@ QgsSvgMarkerSymbolLayerV2Widget::QgsSvgMarkerSymbolLayerV2Widget( const QgsVecto
15271527
mLayer = NULL;
15281528

15291529
setupUi( this );
1530-
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1531-
mBorderWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1532-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
1530+
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
1531+
mBorderWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
1532+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
15331533
viewGroups->setHeaderHidden( true );
15341534

15351535
mChangeColorButton->setColorDialogTitle( tr( "Select fill color" ) );
@@ -2008,8 +2008,8 @@ QgsSVGFillSymbolLayerWidget::QgsSVGFillSymbolLayerWidget( const QgsVectorLayer*
20082008
{
20092009
mLayer = 0;
20102010
setupUi( this );
2011-
mTextureWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2012-
mSvgOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2011+
mTextureWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2012+
mSvgOutlineWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
20132013
mSvgTreeView->setHeaderHidden( true );
20142014
insertIcons();
20152015

@@ -2266,8 +2266,8 @@ QgsLinePatternFillSymbolLayerWidget::QgsLinePatternFillSymbolLayerWidget( const
22662266
QgsSymbolLayerV2Widget( parent, vl ), mLayer( 0 )
22672267
{
22682268
setupUi( this );
2269-
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2270-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2269+
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2270+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
22712271
mOffsetSpinBox->setClearValue( 0 );
22722272
}
22732273

@@ -2365,10 +2365,10 @@ QgsPointPatternFillSymbolLayerWidget::QgsPointPatternFillSymbolLayerWidget( cons
23652365
QgsSymbolLayerV2Widget( parent, vl ), mLayer( 0 )
23662366
{
23672367
setupUi( this );
2368-
mHorizontalDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2369-
mVerticalDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2370-
mHorizontalDisplacementUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2371-
mVerticalDisplacementUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2368+
mHorizontalDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2369+
mVerticalDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2370+
mHorizontalDisplacementUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2371+
mVerticalDisplacementUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
23722372
}
23732373

23742374

@@ -2505,8 +2505,8 @@ QgsFontMarkerSymbolLayerV2Widget::QgsFontMarkerSymbolLayerV2Widget( const QgsVec
25052505
mLayer = NULL;
25062506

25072507
setupUi( this );
2508-
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2509-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2508+
mSizeUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2509+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
25102510
widgetChar = new CharacterWidget;
25112511
scrollArea->setWidget( widgetChar );
25122512

@@ -2741,7 +2741,7 @@ QgsRasterFillSymbolLayerWidget::QgsRasterFillSymbolLayerWidget( const QgsVectorL
27412741
setupUi( this );
27422742

27432743
mWidthUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::Pixel << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2744-
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
2744+
mOffsetUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
27452745

27462746
mSpinOffsetX->setClearValue( 0.0 );
27472747
mSpinOffsetY->setClearValue( 0.0 );

src/gui/symbology-ng/qgssymbolslistwidget.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ QgsSymbolsListWidget::QgsSymbolsListWidget( QgsSymbolV2* symbol, QgsStyleV2* sty
5252
{
5353
setupUi( this );
5454

55-
mSymbolUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
55+
mSymbolUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
5656

5757
btnAdvanced->hide(); // advanced button is hidden by default
5858
if ( menu ) // show it if there is a menu pointer

src/gui/symbology-ng/qgsvectorfieldsymbollayerwidget.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ QgsVectorFieldSymbolLayerWidget::QgsVectorFieldSymbolLayerWidget( const QgsVecto
2020
{
2121
setupUi( this );
2222

23-
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit );
23+
mDistanceUnitWidget->setUnits( QgsSymbolV2::OutputUnitList() << QgsSymbolV2::MM << QgsSymbolV2::MapUnit << QgsSymbolV2::Pixel );
2424

2525
if ( mVectorLayer )
2626
{

0 commit comments

Comments
 (0)