QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::clone() const { QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( mColor, mWidth, mPenStyle ); l->setWidthUnit( mWidthUnit ); l->setOffsetUnit( mOffsetUnit ); l->setCustomDashPatternUnit( mCustomDashPatternUnit ); l->setOffset( mOffset ); l->setPenJoinStyle( mPenJoinStyle ); l->setPenCapStyle( mPenCapStyle ); l->setUseCustomDashPattern( mUseCustomDashPattern ); l->setCustomDashVector( mCustomDashVector ); //data defined properties if ( mStrokeColorExpression ) l->setDataDefinedProperty( "color", mStrokeColorExpression->dump() ); if ( mStrokeWidthExpression ) l->setDataDefinedProperty( "width", mStrokeWidthExpression->dump() ); if ( mLineOffsetExpression ) l->setDataDefinedProperty( "offset", mLineOffsetExpression->dump() ); if ( mDashPatternExpression ) l->setDataDefinedProperty( "customdash", mDashPatternExpression->dump() ); if ( mJoinStyleExpression ) l->setDataDefinedProperty( "joinstyle", mJoinStyleExpression->dump() ); if ( mCapStyleExpression ) l->setDataDefinedProperty( "capstyle", mCapStyleExpression->dump() ); return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::create( const QgsStringMap& props ) { QColor color = DEFAULT_SIMPLELINE_COLOR; double width = DEFAULT_SIMPLELINE_WIDTH; Qt::PenStyle penStyle = DEFAULT_SIMPLELINE_PENSTYLE; if ( props.contains( "color" ) ) color = QgsSymbolLayerV2Utils::decodeColor( props["color"] ); if ( props.contains( "width" ) ) width = props["width"].toDouble(); if ( props.contains( "penstyle" ) ) penStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["penstyle"] ); QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( color, width, penStyle ); if ( props.contains( "width_unit" ) ) l->setWidthUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["width_unit"] ) ); if ( props.contains( "offset" ) ) l->setOffset( props["offset"].toDouble() ); if ( props.contains( "offset_unit" ) ) l->setOffsetUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["offset_unit"] ) ); if ( props.contains( "joinstyle" ) ) l->setPenJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( props["joinstyle"] ) ); if ( props.contains( "capstyle" ) ) l->setPenCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( props["capstyle"] ) ); if ( props.contains( "use_custom_dash" ) ) { l->setUseCustomDashPattern( props["use_custom_dash"].toInt() ); } if ( props.contains( "customdash" ) ) { l->setCustomDashVector( QgsSymbolLayerV2Utils::decodeRealVector( props["customdash"] ) ); } if ( props.contains( "customdash_unit" ) ) { l->setCustomDashPatternUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["customdash_unit"] ) ); } if ( props.contains( "draw_inside_polygon" ) ) { l->setDrawInsidePolygon( props["draw_inside_polygon"].toInt() ); } //data defined properties if ( props.contains( "color_expression" ) ) l->setDataDefinedProperty( "color", props["color_expression"] ); if ( props.contains( "width_expression" ) ) l->setDataDefinedProperty( "width", props["width_expression"] ); if ( props.contains( "offset_expression" ) ) l->setDataDefinedProperty( "offset", props["offset_expression"] ); if ( props.contains( "customdash_expression" ) ) l->setDataDefinedProperty( "customdash", props["customdash_expression"] ); if ( props.contains( "joinstyle_expression" ) ) l->setDataDefinedProperty( "joinstyle", props["joinstyle_expression"] ); if ( props.contains( "capstyle_expression" ) ) l->setDataDefinedProperty( "capstyle", props["capstyle_expression"] ); return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::create( const QgsStringMap& props ) { QColor color = DEFAULT_SIMPLELINE_COLOR; double width = DEFAULT_SIMPLELINE_WIDTH; Qt::PenStyle penStyle = DEFAULT_SIMPLELINE_PENSTYLE; if ( props.contains( "color" ) ) color = QgsSymbolLayerV2Utils::decodeColor( props["color"] ); if ( props.contains( "width" ) ) width = props["width"].toDouble(); if ( props.contains( "penstyle" ) ) penStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["penstyle"] ); QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( color, width, penStyle ); if ( props.contains( "offset" ) ) l->setOffset( props["offset"].toDouble() ); if ( props.contains( "joinstyle" ) ) l->setPenJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( props["joinstyle"] ) ); if ( props.contains( "capstyle" ) ) l->setPenCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( props["capstyle"] ) ); if ( props.contains( "use_custom_dash" ) ) { l->setUseCustomDashPattern( props["use_custom_dash"].toInt() ); } if ( props.contains( "customdash" ) ) { l->setCustomDashVector( QgsSymbolLayerV2Utils::decodeRealVector( props["customdash"] ) ); } return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::clone() const { QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( mColor, mWidth, mPenStyle ); l->setOffset( mOffset ); l->setPenJoinStyle( mPenJoinStyle ); l->setPenCapStyle( mPenCapStyle ); l->setUseCustomDashPattern( mUseCustomDashPattern ); l->setCustomDashVector( mCustomDashVector ); return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::clone() const { QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( mColor, mWidth, mPenStyle ); l->setWidthUnit( mWidthUnit ); l->setOffsetUnit( mOffsetUnit ); l->setCustomDashPatternUnit( mCustomDashPatternUnit ); l->setOffset( mOffset ); l->setPenJoinStyle( mPenJoinStyle ); l->setPenCapStyle( mPenCapStyle ); l->setUseCustomDashPattern( mUseCustomDashPattern ); l->setCustomDashVector( mCustomDashVector ); copyDataDefinedProperties( l ); return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::createFromSld( QDomElement &element ) { QgsDebugMsg( "Entered." ); QDomElement strokeElem = element.firstChildElement( "Stroke" ); if ( strokeElem.isNull() ) return NULL; Qt::PenStyle penStyle; QColor color; double width; Qt::PenJoinStyle penJoinStyle; Qt::PenCapStyle penCapStyle; QVector<qreal> customDashVector; if ( !QgsSymbolLayerV2Utils::lineFromSld( strokeElem, penStyle, color, width, &penJoinStyle, &penCapStyle, &customDashVector ) ) return NULL; double offset = 0.0; QDomElement perpOffsetElem = element.firstChildElement( "PerpendicularOffset" ); if ( !perpOffsetElem.isNull() ) { bool ok; double d = perpOffsetElem.firstChild().nodeValue().toDouble( &ok ); if ( ok ) offset = d; } QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( color, width, penStyle ); l->setOffset( offset ); l->setPenJoinStyle( penJoinStyle ); l->setPenCapStyle( penCapStyle ); l->setUseCustomDashPattern( penStyle == Qt::CustomDashLine ); l->setCustomDashVector( customDashVector ); return l; }
QgsSymbolLayerV2* QgsSimpleLineSymbolLayerV2::create( const QgsStringMap& props ) { QColor color = DEFAULT_SIMPLELINE_COLOR; double width = DEFAULT_SIMPLELINE_WIDTH; Qt::PenStyle penStyle = DEFAULT_SIMPLELINE_PENSTYLE; if ( props.contains( "line_color" ) ) { color = QgsSymbolLayerV2Utils::decodeColor( props["line_color"] ); } else if ( props.contains( "outline_color" ) ) { color = QgsSymbolLayerV2Utils::decodeColor( props["outline_color"] ); } else if ( props.contains( "color" ) ) { //pre 2.5 projects used "color" color = QgsSymbolLayerV2Utils::decodeColor( props["color"] ); } if ( props.contains( "line_width" ) ) { width = props["line_width"].toDouble(); } else if ( props.contains( "outline_width" ) ) { width = props["outline_width"].toDouble(); } else if ( props.contains( "width" ) ) { //pre 2.5 projects used "width" width = props["width"].toDouble(); } if ( props.contains( "line_style" ) ) { penStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["line_style"] ); } else if ( props.contains( "outline_style" ) ) { penStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["outline_style"] ); } else if ( props.contains( "penstyle" ) ) { penStyle = QgsSymbolLayerV2Utils::decodePenStyle( props["penstyle"] ); } QgsSimpleLineSymbolLayerV2* l = new QgsSimpleLineSymbolLayerV2( color, width, penStyle ); if ( props.contains( "line_width_unit" ) ) { l->setWidthUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["line_width_unit"] ) ); } else if ( props.contains( "outline_width_unit" ) ) { l->setWidthUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["outline_width_unit"] ) ); } else if ( props.contains( "width_unit" ) ) { //pre 2.5 projects used "width_unit" l->setWidthUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["width_unit"] ) ); } if ( props.contains( "width_map_unit_scale" ) ) l->setWidthMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["width_map_unit_scale"] ) ); if ( props.contains( "offset" ) ) l->setOffset( props["offset"].toDouble() ); if ( props.contains( "offset_unit" ) ) l->setOffsetUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["offset_unit"] ) ); if ( props.contains( "offset_map_unit_scale" ) ) l->setOffsetMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["offset_map_unit_scale"] ) ); if ( props.contains( "joinstyle" ) ) l->setPenJoinStyle( QgsSymbolLayerV2Utils::decodePenJoinStyle( props["joinstyle"] ) ); if ( props.contains( "capstyle" ) ) l->setPenCapStyle( QgsSymbolLayerV2Utils::decodePenCapStyle( props["capstyle"] ) ); if ( props.contains( "use_custom_dash" ) ) { l->setUseCustomDashPattern( props["use_custom_dash"].toInt() ); } if ( props.contains( "customdash" ) ) { l->setCustomDashVector( QgsSymbolLayerV2Utils::decodeRealVector( props["customdash"] ) ); } if ( props.contains( "customdash_unit" ) ) { l->setCustomDashPatternUnit( QgsSymbolLayerV2Utils::decodeOutputUnit( props["customdash_unit"] ) ); } if ( props.contains( "customdash_map_unit_scale" ) ) { l->setCustomDashPatternMapUnitScale( QgsSymbolLayerV2Utils::decodeMapUnitScale( props["customdash_map_unit_scale"] ) ); } if ( props.contains( "draw_inside_polygon" ) ) { l->setDrawInsidePolygon( props["draw_inside_polygon"].toInt() ); } l->restoreDataDefinedProperties( props ); return l; }