Skip to content

Commit c03f5b7

Browse files
author
mhugent
committedMar 20, 2010
Add method that returns legend item text and symbol pointers to v2 renderers
git-svn-id: http://svn.osgeo.org/qgis/trunk@13113 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 05827a6 commit c03f5b7

8 files changed

+68
-1
lines changed
 

‎src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,25 @@ QgsLegendSymbologyList QgsCategorizedSymbolRendererV2::legendSymbologyItems( QSi
359359
return lst;
360360
}
361361

362+
QgsLegendSymbolList QgsCategorizedSymbolRendererV2::legendSymbolItems()
363+
{
364+
QSettings settings;
365+
bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool();
366+
367+
QgsLegendSymbolList lst;
368+
if ( showClassifiers )
369+
{
370+
lst << qMakePair( classAttribute(), ( QgsSymbolV2* )0 );
371+
}
372+
373+
QgsCategoryList::const_iterator catIt = mCategories.constBegin();
374+
for ( ; catIt != mCategories.constEnd(); ++catIt )
375+
{
376+
lst << qMakePair( catIt->label(), catIt->symbol() );
377+
}
378+
return lst;
379+
}
380+
362381

363382
QgsSymbolV2* QgsCategorizedSymbolRendererV2::sourceSymbol()
364383
{

‎src/core/symbology-ng/qgscategorizedsymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ class CORE_EXPORT QgsCategorizedSymbolRendererV2 : public QgsFeatureRendererV2
8383
//! return a list of symbology items for the legend
8484
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
8585

86+
//! return a list of item text / symbol
87+
//! @note: this method was added in version 1.5
88+
virtual QgsLegendSymbolList legendSymbolItems();
89+
8690
QgsSymbolV2* sourceSymbol();
8791
void setSourceSymbol( QgsSymbolV2* sym );
8892

‎src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,25 @@ QgsLegendSymbologyList QgsGraduatedSymbolRendererV2::legendSymbologyItems( QSize
482482
return lst;
483483
}
484484

485+
QgsLegendSymbolList QgsGraduatedSymbolRendererV2::legendSymbolItems()
486+
{
487+
QSettings settings;
488+
bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool();
489+
490+
QgsLegendSymbolList lst;
491+
if ( showClassifiers )
492+
{
493+
lst << qMakePair( classAttribute(), ( QgsSymbolV2* )0 );
494+
}
495+
496+
QgsRangeList::const_iterator rangeIt = mRanges.constBegin();
497+
for ( ; rangeIt != mRanges.constEnd(); ++rangeIt )
498+
{
499+
lst << qMakePair( rangeIt->label(), rangeIt->symbol() );
500+
}
501+
return lst;
502+
}
503+
485504
QgsSymbolV2* QgsGraduatedSymbolRendererV2::sourceSymbol()
486505
{
487506
return mSourceSymbol;

‎src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,10 @@ class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
9797
//! return a list of symbology items for the legend
9898
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
9999

100+
//! return a list of item text / symbol
101+
//! @note: this method was added in version 1.5
102+
virtual QgsLegendSymbolList legendSymbolItems();
103+
100104
QgsSymbolV2* sourceSymbol();
101105
void setSourceSymbol( QgsSymbolV2* sym );
102106

‎src/core/symbology-ng/qgsrendererv2.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ QgsFeatureRendererV2* QgsFeatureRendererV2::load( QDomElement& element )
312312
QString rendererType = element.attribute( "type" );
313313

314314
QgsRendererV2AbstractMetadata* m = QgsRendererV2Registry::instance()->rendererMetadata( rendererType );
315-
if (m == NULL)
315+
if ( m == NULL )
316316
return NULL;
317317

318318
QgsFeatureRendererV2* r = m->createRenderer( element );
@@ -334,6 +334,11 @@ QgsLegendSymbologyList QgsFeatureRendererV2::legendSymbologyItems( QSize iconSiz
334334
return QgsLegendSymbologyList();
335335
}
336336

337+
QgsLegendSymbolList QgsFeatureRendererV2::legendSymbolItems()
338+
{
339+
return QgsLegendSymbolList();
340+
}
341+
337342
void QgsFeatureRendererV2::setVertexMarkerAppearance( int type, int size )
338343
{
339344
mCurrentVertexMarkerType = type;

‎src/core/symbology-ng/qgsrendererv2.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ typedef QList<QgsSymbolV2*> QgsSymbolV2List;
2222
typedef QMap<QString, QgsSymbolV2* > QgsSymbolV2Map;
2323

2424
typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList;
25+
typedef QList< QPair<QString, QgsSymbolV2*> > QgsLegendSymbolList;
2526

2627
#define RENDERER_TAG_NAME "renderer-v2"
2728

@@ -92,6 +93,10 @@ class CORE_EXPORT QgsFeatureRendererV2
9293
//! return a list of symbology items for the legend
9394
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
9495

96+
//! return a list of item text / symbol
97+
//! @note: this method was added in version 1.5
98+
virtual QgsLegendSymbolList legendSymbolItems();
99+
95100
//! set type and size of editing vertex markers for subsequent rendering
96101
void setVertexMarkerAppearance( int type, int size );
97102

‎src/core/symbology-ng/qgssinglesymbolrendererv2.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,10 @@ QgsLegendSymbologyList QgsSingleSymbolRendererV2::legendSymbologyItems( QSize ic
110110
lst << qMakePair( QString(), pix );
111111
return lst;
112112
}
113+
114+
QgsLegendSymbolList QgsSingleSymbolRendererV2::legendSymbolItems()
115+
{
116+
QgsLegendSymbolList lst;
117+
lst << qMakePair( QString(), mSymbol );
118+
return lst;
119+
}

‎src/core/symbology-ng/qgssinglesymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ class CORE_EXPORT QgsSingleSymbolRendererV2 : public QgsFeatureRendererV2
3737
//! return a list of symbology items for the legend
3838
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
3939

40+
//! return a list of item text / symbol
41+
//! @note: this method was added in version 1.5
42+
virtual QgsLegendSymbolList legendSymbolItems();
43+
4044
protected:
4145
QgsSymbolV2* mSymbol;
4246
};

0 commit comments

Comments
 (0)
Please sign in to comment.