Skip to content

Commit 56525c2

Browse files
committed
Introduce capabilities for renderers (now only symbol levels capability)
1 parent 4a5d442 commit 56525c2

File tree

5 files changed

+22
-1
lines changed

5 files changed

+22
-1
lines changed

src/core/qgsvectorlayer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -987,7 +987,8 @@ bool QgsVectorLayer::draw( QgsRenderContext& rendererContext )
987987

988988
select( attributes, rendererContext.extent() );
989989

990-
if ( mRendererV2->usingSymbolLevels() )
990+
if ( ( mRendererV2->capabilities() & QgsFeatureRendererV2::SymbolLevels )
991+
&& mRendererV2->usingSymbolLevels() )
991992
drawRendererV2Levels( rendererContext, labeling );
992993
else
993994
drawRendererV2( rendererContext, labeling );

src/core/symbology-ng/qgscategorizedsymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ class CORE_EXPORT QgsCategorizedSymbolRendererV2 : public QgsFeatureRendererV2
6060

6161
virtual QgsFeatureRendererV2* clone();
6262

63+
//! returns bitwise OR-ed capabilities of the renderer
64+
//! \note added in 2.0
65+
virtual int capabilities() { return SymbolLevels; }
66+
6367
virtual QgsSymbolV2List symbols();
6468

6569
const QgsCategoryList& categories() { return mCategories; }

src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
5555

5656
virtual QgsFeatureRendererV2* clone();
5757

58+
//! returns bitwise OR-ed capabilities of the renderer
59+
//! \note added in 2.0
60+
virtual int capabilities() { return SymbolLevels; }
61+
5862
virtual QgsSymbolV2List symbols();
5963

6064
QString classAttribute() const { return mAttrName; }

src/core/symbology-ng/qgsrendererv2.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ class CORE_EXPORT QgsFeatureRendererV2
7878
//! for debugging
7979
virtual QString dump();
8080

81+
enum Capabilities {
82+
SymbolLevels = 1 // rendering with symbol levels (i.e. implements symbols(), symbolForFeature())
83+
};
84+
85+
//! returns bitwise OR-ed capabilities of the renderer
86+
//! \note added in 2.0
87+
virtual int capabilities() { return 0; }
88+
8189
//! for symbol levels
8290
virtual QgsSymbolV2List symbols() = 0;
8391

src/core/symbology-ng/qgssinglesymbolrendererv2.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ class CORE_EXPORT QgsSingleSymbolRendererV2 : public QgsFeatureRendererV2
3636

3737
virtual QgsFeatureRendererV2* clone();
3838

39+
//! returns bitwise OR-ed capabilities of the renderer
40+
//! \note added in 2.0
41+
virtual int capabilities() { return SymbolLevels; }
42+
3943
virtual QgsSymbolV2List symbols();
4044

4145
//! create renderer from XML element

0 commit comments

Comments
 (0)