Skip to content

Commit

Permalink
Add method that returns legend item text and symbol pointers to v2 re…
Browse files Browse the repository at this point in the history
…nderers

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@13113 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
mhugent committed Mar 20, 2010
1 parent 5a44508 commit 872d2ac
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 1 deletion.
19 changes: 19 additions & 0 deletions src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
Expand Up @@ -359,6 +359,25 @@ QgsLegendSymbologyList QgsCategorizedSymbolRendererV2::legendSymbologyItems( QSi
return lst;
}

QgsLegendSymbolList QgsCategorizedSymbolRendererV2::legendSymbolItems()
{
QSettings settings;
bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool();

QgsLegendSymbolList lst;
if ( showClassifiers )
{
lst << qMakePair( classAttribute(), ( QgsSymbolV2* )0 );
}

QgsCategoryList::const_iterator catIt = mCategories.constBegin();
for ( ; catIt != mCategories.constEnd(); ++catIt )
{
lst << qMakePair( catIt->label(), catIt->symbol() );
}
return lst;
}


QgsSymbolV2* QgsCategorizedSymbolRendererV2::sourceSymbol()
{
Expand Down
4 changes: 4 additions & 0 deletions src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
Expand Up @@ -83,6 +83,10 @@ class CORE_EXPORT QgsCategorizedSymbolRendererV2 : public QgsFeatureRendererV2
//! return a list of symbology items for the legend
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );

//! return a list of item text / symbol
//! @note: this method was added in version 1.5
virtual QgsLegendSymbolList legendSymbolItems();

QgsSymbolV2* sourceSymbol();
void setSourceSymbol( QgsSymbolV2* sym );

Expand Down
19 changes: 19 additions & 0 deletions src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
Expand Up @@ -482,6 +482,25 @@ QgsLegendSymbologyList QgsGraduatedSymbolRendererV2::legendSymbologyItems( QSize
return lst;
}

QgsLegendSymbolList QgsGraduatedSymbolRendererV2::legendSymbolItems()
{
QSettings settings;
bool showClassifiers = settings.value( "/qgis/showLegendClassifiers", false ).toBool();

QgsLegendSymbolList lst;
if ( showClassifiers )
{
lst << qMakePair( classAttribute(), ( QgsSymbolV2* )0 );
}

QgsRangeList::const_iterator rangeIt = mRanges.constBegin();
for ( ; rangeIt != mRanges.constEnd(); ++rangeIt )
{
lst << qMakePair( rangeIt->label(), rangeIt->symbol() );
}
return lst;
}

QgsSymbolV2* QgsGraduatedSymbolRendererV2::sourceSymbol()
{
return mSourceSymbol;
Expand Down
4 changes: 4 additions & 0 deletions src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
Expand Up @@ -97,6 +97,10 @@ class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
//! return a list of symbology items for the legend
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );

//! return a list of item text / symbol
//! @note: this method was added in version 1.5
virtual QgsLegendSymbolList legendSymbolItems();

QgsSymbolV2* sourceSymbol();
void setSourceSymbol( QgsSymbolV2* sym );

Expand Down
7 changes: 6 additions & 1 deletion src/core/symbology-ng/qgsrendererv2.cpp
Expand Up @@ -312,7 +312,7 @@ QgsFeatureRendererV2* QgsFeatureRendererV2::load( QDomElement& element )
QString rendererType = element.attribute( "type" );

QgsRendererV2AbstractMetadata* m = QgsRendererV2Registry::instance()->rendererMetadata( rendererType );
if (m == NULL)
if ( m == NULL )
return NULL;

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

QgsLegendSymbolList QgsFeatureRendererV2::legendSymbolItems()
{
return QgsLegendSymbolList();
}

void QgsFeatureRendererV2::setVertexMarkerAppearance( int type, int size )
{
mCurrentVertexMarkerType = type;
Expand Down
5 changes: 5 additions & 0 deletions src/core/symbology-ng/qgsrendererv2.h
Expand Up @@ -22,6 +22,7 @@ typedef QList<QgsSymbolV2*> QgsSymbolV2List;
typedef QMap<QString, QgsSymbolV2* > QgsSymbolV2Map;

typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList;
typedef QList< QPair<QString, QgsSymbolV2*> > QgsLegendSymbolList;

#define RENDERER_TAG_NAME "renderer-v2"

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

//! return a list of item text / symbol
//! @note: this method was added in version 1.5
virtual QgsLegendSymbolList legendSymbolItems();

//! set type and size of editing vertex markers for subsequent rendering
void setVertexMarkerAppearance( int type, int size );

Expand Down
7 changes: 7 additions & 0 deletions src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
Expand Up @@ -110,3 +110,10 @@ QgsLegendSymbologyList QgsSingleSymbolRendererV2::legendSymbologyItems( QSize ic
lst << qMakePair( QString(), pix );
return lst;
}

QgsLegendSymbolList QgsSingleSymbolRendererV2::legendSymbolItems()
{
QgsLegendSymbolList lst;
lst << qMakePair( QString(), mSymbol );
return lst;
}
4 changes: 4 additions & 0 deletions src/core/symbology-ng/qgssinglesymbolrendererv2.h
Expand Up @@ -37,6 +37,10 @@ class CORE_EXPORT QgsSingleSymbolRendererV2 : public QgsFeatureRendererV2
//! return a list of symbology items for the legend
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );

//! return a list of item text / symbol
//! @note: this method was added in version 1.5
virtual QgsLegendSymbolList legendSymbolItems();

protected:
QgsSymbolV2* mSymbol;
};
Expand Down

0 comments on commit 872d2ac

Please sign in to comment.