[QGIS Commit] r13408 - in trunk/qgis/src: core/symbology-ng
gui/symbology-ng ui/symbollayer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Apr 29 15:47:32 EDT 2010
Author: wonder
Date: 2010-04-29 15:47:31 -0400 (Thu, 29 Apr 2010)
New Revision: 13408
Modified:
trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.h
trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.cpp
trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.h
trunk/qgis/src/ui/symbollayer/widget_simplefill.ui
Log:
[FEATURE] symbology-ng: possibility to offset for simple fill.
Modified: trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.cpp 2010-04-29 07:52:00 UTC (rev 13407)
+++ trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.cpp 2010-04-29 19:47:31 UTC (rev 13408)
@@ -22,6 +22,7 @@
QColor borderColor = DEFAULT_SIMPLEFILL_BORDERCOLOR;
Qt::PenStyle borderStyle = DEFAULT_SIMPLEFILL_BORDERSTYLE;
double borderWidth = DEFAULT_SIMPLEFILL_BORDERWIDTH;
+ QPointF offset;
if ( props.contains( "color" ) )
color = QgsSymbolLayerV2Utils::decodeColor( props["color"] );
@@ -33,8 +34,12 @@
borderStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["style_border"] );
if ( props.contains( "width_border" ) )
borderWidth = props["width_border"].toDouble();
+ if ( props.contains( "offset" ) )
+ offset = QgsSymbolLayerV2Utils::decodePoint( props["offset"] );
- return new QgsSimpleFillSymbolLayerV2( color, style, borderColor, borderStyle, borderWidth );
+ QgsSimpleFillSymbolLayerV2* sl = new QgsSimpleFillSymbolLayerV2( color, style, borderColor, borderStyle, borderWidth );
+ sl->setOffset( offset );
+ return sl;
}
@@ -72,7 +77,13 @@
p->setBrush( context.selected() ? mSelBrush : mBrush );
p->setPen( mPen );
+ if ( !mOffset.isNull() )
+ p->translate( mOffset );
+
_renderPolygon( p, points, rings );
+
+ if ( !mOffset.isNull() )
+ p->translate( -mOffset );
}
QgsStringMap QgsSimpleFillSymbolLayerV2::properties() const
@@ -83,12 +94,15 @@
map["color_border"] = QgsSymbolLayerV2Utils::encodeColor( mBorderColor );
map["style_border"] = QgsSymbolLayerV2Utils::encodePenStyle( mBorderStyle );
map["width_border"] = QString::number( mBorderWidth );
+ map["offset"] = QgsSymbolLayerV2Utils::encodePoint( mOffset );
return map;
}
QgsSymbolLayerV2* QgsSimpleFillSymbolLayerV2::clone() const
{
- return new QgsSimpleFillSymbolLayerV2( mColor, mBrushStyle, mBorderColor, mBorderStyle, mBorderWidth );
+ QgsSimpleFillSymbolLayerV2* sl = new QgsSimpleFillSymbolLayerV2( mColor, mBrushStyle, mBorderColor, mBorderStyle, mBorderWidth );
+ sl->setOffset( mOffset );
+ return sl;
}
//QgsSVGFillSymbolLayer
Modified: trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.h
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.h 2010-04-29 07:52:00 UTC (rev 13407)
+++ trunk/qgis/src/core/symbology-ng/qgsfillsymbollayerv2.h 2010-04-29 19:47:31 UTC (rev 13408)
@@ -52,6 +52,9 @@
double borderWidth() const { return mBorderWidth; }
void setBorderWidth( double borderWidth ) { mBorderWidth = borderWidth; }
+ void setOffset( QPointF offset ) { mOffset = offset; }
+ QPointF offset() { return mOffset; }
+
protected:
QBrush mBrush;
QBrush mSelBrush;
@@ -60,6 +63,8 @@
Qt::PenStyle mBorderStyle;
double mBorderWidth;
QPen mPen;
+
+ QPointF mOffset;
};
/**A class for svg fill patterns. The class automatically scales the pattern to
Modified: trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.cpp
===================================================================
--- trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.cpp 2010-04-29 07:52:00 UTC (rev 13407)
+++ trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.cpp 2010-04-29 19:47:31 UTC (rev 13408)
@@ -271,6 +271,8 @@
connect( btnChangeBorderColor, SIGNAL( clicked() ), this, SLOT( setBorderColor() ) );
connect( spinBorderWidth, SIGNAL( valueChanged( double ) ), this, SLOT( borderWidthChanged() ) );
connect( cboBorderStyle, SIGNAL( currentIndexChanged( int ) ), this, SLOT( borderStyleChanged() ) );
+ connect( spinOffsetX, SIGNAL( valueChanged( double ) ), this, SLOT( offsetChanged() ) );
+ connect( spinOffsetY, SIGNAL( valueChanged( double ) ), this, SLOT( offsetChanged() ) );
}
void QgsSimpleFillSymbolLayerV2Widget::setSymbolLayer( QgsSymbolLayerV2* layer )
@@ -287,6 +289,8 @@
btnChangeBorderColor->setColor( mLayer->borderColor() );
cboBorderStyle->setPenStyle( mLayer->borderStyle() );
spinBorderWidth->setValue( mLayer->borderWidth() );
+ spinOffsetX->setValue( mLayer->offset().x() );
+ spinOffsetY->setValue( mLayer->offset().y() );
}
QgsSymbolLayerV2* QgsSimpleFillSymbolLayerV2Widget::symbolLayer()
@@ -332,6 +336,12 @@
emit changed();
}
+void QgsSimpleFillSymbolLayerV2Widget::offsetChanged()
+{
+ mLayer->setOffset( QPointF( spinOffsetX->value(), spinOffsetY->value() ) );
+ emit changed();
+}
+
///////////
QgsMarkerLineSymbolLayerV2Widget::QgsMarkerLineSymbolLayerV2Widget( QWidget* parent )
Modified: trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.h
===================================================================
--- trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.h 2010-04-29 07:52:00 UTC (rev 13407)
+++ trunk/qgis/src/gui/symbology-ng/qgssymbollayerv2widget.h 2010-04-29 19:47:31 UTC (rev 13408)
@@ -113,6 +113,7 @@
void setBrushStyle();
void borderWidthChanged();
void borderStyleChanged();
+ void offsetChanged();
protected:
QgsSimpleFillSymbolLayerV2* mLayer;
Modified: trunk/qgis/src/ui/symbollayer/widget_simplefill.ui
===================================================================
--- trunk/qgis/src/ui/symbollayer/widget_simplefill.ui 2010-04-29 07:52:00 UTC (rev 13407)
+++ trunk/qgis/src/ui/symbollayer/widget_simplefill.ui 2010-04-29 19:47:31 UTC (rev 13408)
@@ -13,9 +13,9 @@
<property name="windowTitle">
<string>Form</string>
</property>
- <layout class="QVBoxLayout">
+ <layout class="QVBoxLayout" name="verticalLayout">
<item>
- <layout class="QGridLayout">
+ <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
@@ -30,7 +30,7 @@
</property>
</widget>
</item>
- <item row="0" column="2" rowspan="5">
+ <item row="0" column="2" rowspan="6">
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
@@ -40,12 +40,22 @@
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>91</width>
- <height>51</height>
+ <width>28</width>
+ <height>158</height>
</size>
</property>
</spacer>
</item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Fill style:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QgsBrushStyleComboBox" name="cboFillStyle"/>
+ </item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
@@ -60,16 +70,6 @@
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QgsBrushStyleComboBox" name="cboFillStyle"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_2">
- <property name="text">
- <string>Fill style:</string>
- </property>
- </widget>
- </item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
@@ -97,6 +97,37 @@
</property>
</widget>
</item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Offset X,Y:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QDoubleSpinBox" name="spinOffsetX">
+ <property name="minimum">
+ <double>-999.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>999.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDoubleSpinBox" name="spinOffsetY">
+ <property name="minimum">
+ <double>-999.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>999.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</item>
<item>
More information about the QGIS-commit
mailing list