File tree Expand file tree Collapse file tree 3 files changed +32
-0
lines changed
Expand file tree Collapse file tree 3 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -448,6 +448,9 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
448448 //! store renderer info to XML element
449449 virtual QDomElement save( QDomDocument& doc );
450450
451+ //! return a list of symbology items for the legend
452+ virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
453+
451454 /////
452455
453456 //! return the total number of rules
Original file line number Diff line number Diff line change @@ -244,6 +244,28 @@ QDomElement QgsRuleBasedRendererV2::save( QDomDocument& doc )
244244}
245245
246246
247+ QgsLegendSymbologyList QgsRuleBasedRendererV2::legendSymbologyItems ( QSize iconSize )
248+ {
249+ QgsLegendSymbologyList lst;
250+ for ( QList<Rule>::iterator it = mRules .begin (); it != mRules .end (); ++it )
251+ {
252+ QPixmap pix = QgsSymbolLayerV2Utils::symbolPreviewPixmap ( it->symbol (), iconSize );
253+ lst << qMakePair ( it->filterExpression (), pix );
254+ }
255+ return lst;
256+ }
257+
258+ QgsLegendSymbolList QgsRuleBasedRendererV2::legendSymbolItems ()
259+ {
260+ QgsLegendSymbolList lst;
261+ for ( QList<Rule>::iterator it = mRules .begin (); it != mRules .end (); ++it )
262+ {
263+ lst << qMakePair ( it->filterExpression (), it->symbol () );
264+ }
265+ return lst;
266+ }
267+
268+
247269QgsFeatureRendererV2* QgsRuleBasedRendererV2::create ( QDomElement& element )
248270{
249271 // load symbols
Original file line number Diff line number Diff line change @@ -102,6 +102,13 @@ class CORE_EXPORT QgsRuleBasedRendererV2 : public QgsFeatureRendererV2
102102 // ! store renderer info to XML element
103103 virtual QDomElement save ( QDomDocument& doc );
104104
105+ // ! return a list of symbology items for the legend
106+ virtual QgsLegendSymbologyList legendSymbologyItems ( QSize iconSize );
107+
108+ // ! return a list of item text / symbol
109+ // ! @note: this method was added in version 1.5
110+ virtual QgsLegendSymbolList legendSymbolItems ();
111+
105112 // ///
106113
107114 // ! return the total number of rules
You can’t perform that action at this time.
0 commit comments