QgsSymbolLayerV2* QgsMarkerLineSymbolLayerV2::clone() const { QgsMarkerLineSymbolLayerV2* x = new QgsMarkerLineSymbolLayerV2( mRotateMarker, mInterval ); x->setSubSymbol( mMarker->clone() ); x->setOffset( mOffset ); x->setPlacement( mPlacement ); x->setOffsetUnit( mOffsetUnit ); x->setIntervalUnit( mIntervalUnit ); //data defined properties if ( mIntervalExpression ) { x->setDataDefinedProperty( "interval", mIntervalExpression->dump() ); } if ( mOffsetExpression ) { x->setDataDefinedProperty( "offset", mOffsetExpression->dump() ); } if ( mPlacementExpression ) { x->setDataDefinedProperty( "placement", mPlacementExpression->dump() ); } return x; }
QgsSymbolLayerV2* QgsMarkerLineSymbolLayerV2::create( const QgsStringMap& props ) { bool rotate = DEFAULT_MARKERLINE_ROTATE; double interval = DEFAULT_MARKERLINE_INTERVAL; if ( props.contains( "interval" ) ) interval = props["interval"].toDouble(); if ( props.contains( "rotate" ) ) rotate = ( props["rotate"] == "1" ); QgsMarkerLineSymbolLayerV2* x = new QgsMarkerLineSymbolLayerV2( rotate, interval ); if ( props.contains( "offset" ) ) { x->setOffset( props["offset"].toDouble() ); } if ( props.contains( "offset_unit" ) ) { x->setOffsetUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["offset_unit"] ) ); } if ( props.contains( "interval_unit" ) ) { x->setIntervalUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["interval_unit"] ) ); } if ( props.contains( "placement" ) ) { if ( props["placement"] == "vertex" ) x->setPlacement( Vertex ); else if ( props["placement"] == "lastvertex" ) x->setPlacement( LastVertex ); else if ( props["placement"] == "firstvertex" ) x->setPlacement( FirstVertex ); else if ( props["placement"] == "centralpoint" ) x->setPlacement( CentralPoint ); else x->setPlacement( Interval ); } //data defined properties if ( props.contains( "interval_expression" ) ) { x->setDataDefinedProperty( "interval", props["interval_expression"] ); } if ( props.contains( "offset_expression" ) ) { x->setDataDefinedProperty( "offset", props["offset_expression"] ); } if ( props.contains( "placement_expression" ) ) { x->setDataDefinedProperty( "placement", props["placement_expression"] ); } return x; }
QgsSymbolLayerV2* QgsMarkerLineSymbolLayerV2::clone() const { QgsMarkerLineSymbolLayerV2* x = new QgsMarkerLineSymbolLayerV2( mRotateMarker, mInterval ); x->setSubSymbol( mMarker->clone() ); x->setOffset( mOffset ); x->setPlacement( mPlacement ); x->setOffsetUnit( mOffsetUnit ); x->setIntervalUnit( mIntervalUnit ); copyDataDefinedProperties( x ); return x; }
QgsSymbolLayerV2* QgsMarkerLineSymbolLayerV2::create( const QgsStringMap& props ) { bool rotate = DEFAULT_MARKERLINE_ROTATE; double interval = DEFAULT_MARKERLINE_INTERVAL; if ( props.contains( "interval" ) ) interval = props["interval"].toDouble(); if ( props.contains( "rotate" ) ) rotate = ( props["rotate"] == "1" ); QgsMarkerLineSymbolLayerV2* x = new QgsMarkerLineSymbolLayerV2( rotate, interval ); if ( props.contains( "offset" ) ) { x->setOffset( props["offset"].toDouble() ); } if ( props.contains( "offset_unit" ) ) { x->setOffsetUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["offset_unit"] ) ); } if ( props.contains( "interval_unit" ) ) { x->setIntervalUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["interval_unit"] ) ); } if ( props.contains( "offset_along_line" ) ) { x->setOffsetAlongLine( props["offset_along_line"].toDouble() ); } if ( props.contains( "offset_along_line_unit" ) ) { x->setOffsetAlongLineUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["offset_along_line_unit"] ) ); } if ( props.contains(( "offset_along_line_map_unit_scale" ) ) ) { x->setOffsetAlongLineMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["offset_along_line_map_unit_scale"] ) ); } if ( props.contains( "offset_map_unit_scale" ) ) { x->setOffsetMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["offset_map_unit_scale"] ) ); } if ( props.contains( "interval_map_unit_scale" ) ) { x->setIntervalMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["interval_map_unit_scale"] ) ); } if ( props.contains( "placement" ) ) { if ( props["placement"] == "vertex" ) x->setPlacement( Vertex ); else if ( props["placement"] == "lastvertex" ) x->setPlacement( LastVertex ); else if ( props["placement"] == "firstvertex" ) x->setPlacement( FirstVertex ); else if ( props["placement"] == "centralpoint" ) x->setPlacement( CentralPoint ); else if ( props["placement"] == "curvepoint" ) x->setPlacement( CurvePoint ); else x->setPlacement( Interval ); } x->restoreDataDefinedProperties( props ); return x; }