|
16 | 16 | ***************************************************************************/
|
17 | 17 |
|
18 | 18 | #include "qgspointclusterrenderer.h"
|
| 19 | +#include "qgspointdisplacementrenderer.h" |
19 | 20 | #include "qgssymbollayerutils.h"
|
20 | 21 | #include "qgspainteffectregistry.h"
|
21 | 22 | #include "qgspainteffect.h"
|
@@ -189,15 +190,30 @@ QgsPointClusterRenderer* QgsPointClusterRenderer::convertFromRenderer( const Qgs
|
189 | 190 | {
|
190 | 191 | return dynamic_cast<QgsPointClusterRenderer*>( renderer->clone() );
|
191 | 192 | }
|
192 |
| - |
193 |
| - if ( renderer->type() == "singleSymbol" || |
194 |
| - renderer->type() == "categorizedSymbol" || |
195 |
| - renderer->type() == "graduatedSymbol" || |
196 |
| - renderer->type() == "RuleRenderer" ) |
| 193 | + else if ( renderer->type() == "singleSymbol" || |
| 194 | + renderer->type() == "categorizedSymbol" || |
| 195 | + renderer->type() == "graduatedSymbol" || |
| 196 | + renderer->type() == "RuleRenderer" ) |
197 | 197 | {
|
198 | 198 | QgsPointClusterRenderer* pointRenderer = new QgsPointClusterRenderer();
|
199 | 199 | pointRenderer->setEmbeddedRenderer( renderer->clone() );
|
200 | 200 | return pointRenderer;
|
201 | 201 | }
|
202 |
| - return nullptr; |
| 202 | + else if ( renderer->type() == "pointDisplacement" ) |
| 203 | + { |
| 204 | + QgsPointClusterRenderer* pointRenderer = new QgsPointClusterRenderer(); |
| 205 | + const QgsPointDisplacementRenderer* displacementRenderer = static_cast< const QgsPointDisplacementRenderer* >( renderer ); |
| 206 | + if ( displacementRenderer->embeddedRenderer() ) |
| 207 | + pointRenderer->setEmbeddedRenderer( displacementRenderer->embeddedRenderer()->clone() ); |
| 208 | + pointRenderer->setTolerance( displacementRenderer->tolerance() ); |
| 209 | + pointRenderer->setToleranceUnit( displacementRenderer->toleranceUnit() ); |
| 210 | + pointRenderer->setToleranceMapUnitScale( displacementRenderer->toleranceMapUnitScale() ); |
| 211 | + if ( const_cast< QgsPointDisplacementRenderer* >( displacementRenderer )->centerSymbol() ) |
| 212 | + pointRenderer->setClusterSymbol( const_cast< QgsPointDisplacementRenderer* >( displacementRenderer )->centerSymbol()->clone() ); |
| 213 | + return pointRenderer; |
| 214 | + } |
| 215 | + else |
| 216 | + { |
| 217 | + return nullptr; |
| 218 | + } |
203 | 219 | }
|
0 commit comments