[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