2
#include "qgssinglesymbolrendererv2.h"
4
#include "qgssymbolv2.h"
5
#include "qgssymbollayerv2utils.h"
7
#include <QDomDocument>
10
QgsSingleSymbolRendererV2::QgsSingleSymbolRendererV2( QgsSymbolV2* symbol )
11
: QgsFeatureRendererV2( "singleSymbol" )
16
QgsSingleSymbolRendererV2::~QgsSingleSymbolRendererV2()
21
QgsSymbolV2* QgsSingleSymbolRendererV2::symbolForFeature( QgsFeature& feature )
26
void QgsSingleSymbolRendererV2::startRender( QgsRenderContext& context, const QgsVectorLayer *vlayer )
28
mSymbol->startRender( context );
31
void QgsSingleSymbolRendererV2::stopRender( QgsRenderContext& context )
33
mSymbol->stopRender( context );
36
QList<QString> QgsSingleSymbolRendererV2::usedAttributes()
38
return QList<QString>();
41
QgsSymbolV2* QgsSingleSymbolRendererV2::symbol() const
46
void QgsSingleSymbolRendererV2::setSymbol( QgsSymbolV2* s )
52
QString QgsSingleSymbolRendererV2::dump()
54
return QString( "SINGLE: %1" ).arg( mSymbol->dump() );
57
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::clone()
59
QgsSingleSymbolRendererV2* r = new QgsSingleSymbolRendererV2( mSymbol->clone() );
60
r->setUsingSymbolLevels( usingSymbolLevels() );
64
QgsSymbolV2List QgsSingleSymbolRendererV2::symbols()
67
lst.append( mSymbol );
71
QgsFeatureRendererV2* QgsSingleSymbolRendererV2::create( QDomElement& element )
73
QDomElement symbolsElem = element.firstChildElement( "symbols" );
74
if ( symbolsElem.isNull() )
77
QgsSymbolV2Map symbolMap = QgsSymbolLayerV2Utils::loadSymbols( symbolsElem );
79
if ( !symbolMap.contains( "0" ) )
82
QgsSingleSymbolRendererV2* r = new QgsSingleSymbolRendererV2( symbolMap.take( "0" ) );
84
// delete symbols if there are any more
85
QgsSymbolLayerV2Utils::clearSymbolMap( symbolMap );
87
// TODO: symbol levels
91
QDomElement QgsSingleSymbolRendererV2::save( QDomDocument& doc )
93
QDomElement rendererElem = doc.createElement( RENDERER_TAG_NAME );
94
rendererElem.setAttribute( "type", "singleSymbol" );
95
rendererElem.setAttribute( "symbollevels", ( mUsingSymbolLevels ? "1" : "0" ) );
97
QgsSymbolV2Map symbols;
98
symbols["0"] = mSymbol;
99
QDomElement symbolsElem = QgsSymbolLayerV2Utils::saveSymbols( symbols, "symbols", doc );
100
rendererElem.appendChild( symbolsElem );
105
QgsLegendSymbologyList QgsSingleSymbolRendererV2::legendSymbologyItems( QSize iconSize )
107
QPixmap pix = QgsSymbolLayerV2Utils::symbolPreviewPixmap( mSymbol, iconSize );
109
QgsLegendSymbologyList lst;
110
lst << qMakePair( QString(), pix );