Skip to content

Commit 9869fc5

Browse files
committed
Merge branch 'master' of github.com:qgis/Quantum-GIS
2 parents 5333b74 + f375e35 commit 9869fc5

File tree

8 files changed

+88
-1134
lines changed

8 files changed

+88
-1134
lines changed

src/mapserver/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@ SET ( qgis_mapserv_SRCS
2626
qgspostrequesthandler.cpp
2727
qgssoaprequesthandler.cpp
2828
qgssldparser.cpp
29-
qgssldrenderer.cpp
3029
qgswmsserver.cpp
3130
qgswfsserver.cpp
3231
qgsmapserviceexception.cpp
3332
qgsmslayercache.cpp
3433
qgsfilter.cpp
35-
qgssldrule.cpp
3634
qgsbetweenfilter.cpp
3735
qgscomparisonfilter.cpp
3836
qgslogicalfilter.cpp

src/mapserver/qgssldparser.cpp

Lines changed: 21 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
#include "qgscoordinatetransform.h"
2222
#include "qgsftptransaction.h"
2323
#include "qgshttptransaction.h"
24-
#include "qgssinglesymbolrenderer.h"
25-
#include "qgssldrenderer.h"
26-
#include "qgssymbol.h"
24+
#include "qgsrendererv2.h"
25+
#include "qgssinglesymbolrendererv2.h"
26+
#include "qgssymbolv2.h"
2727
#include "qgsvectordataprovider.h"
2828
#include "qgsvectorlayer.h"
2929
#include "qgsmapserviceexception.h"
@@ -32,7 +32,6 @@
3232
#include "qgsmsutils.h"
3333
#include "qgsrasterlayer.h"
3434
#include "qgscolorrampshader.h"
35-
#include "qgssldrule.h"
3635
#include "qgscoordinatereferencesystem.h"
3736
#include "qgslabelattributes.h"
3837

@@ -274,9 +273,9 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
274273
QgsVectorLayer* v = dynamic_cast<QgsVectorLayer*>( fallbackLayerList.at( 0 ) );
275274
if ( v )
276275
{
277-
QgsRenderer* r = rendererFromUserStyle( userStyleElement, v );
278-
v->setRenderer( r );
279-
v->setUsingRendererV2( false );
276+
QgsFeatureRendererV2* r = rendererFromUserStyle( userStyleElement, v );
277+
v->setRendererV2( r );
278+
v->setUsingRendererV2( true );
280279
labelSettingsFromUserStyle( userStyleElement, v );
281280
#ifdef DIAGRAMSERVER
282281
overlaysFromUserStyle( userStyleElement, v );
@@ -337,7 +336,7 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
337336
return resultList;
338337
}
339338

340-
QgsRenderer* theRenderer = 0;
339+
QgsFeatureRendererV2* theRenderer = 0;
341340

342341
QgsVectorLayer* theVectorLayer = dynamic_cast<QgsVectorLayer*>( theMapLayer );
343342
if ( !theVectorLayer )
@@ -370,15 +369,8 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
370369

371370
if ( userStyleElement.isNull() )//apply a default style
372371
{
373-
theRenderer = new QgsSingleSymbolRenderer( theVectorLayer->geometryType() );
374-
QgsSymbol* defaultSymbol = new QgsSymbol( theVectorLayer->geometryType() );
375-
QPen defaultPen;
376-
defaultPen.setWidth( 1 );
377-
defaultSymbol->setPen( defaultPen );
378-
QBrush defaultBrush;
379-
defaultBrush.setStyle( Qt::NoBrush );
380-
defaultSymbol->setBrush( defaultBrush );
381-
( static_cast<QgsSingleSymbolRenderer*>( theRenderer ) )->addSymbol( defaultSymbol );
372+
QgsSymbolV2* symbol = QgsSymbolV2::defaultSymbol( theVectorLayer->geometryType() );
373+
theRenderer = new QgsSingleSymbolRendererV2( symbol );
382374
}
383375
else
384376
{
@@ -399,48 +391,30 @@ QList<QgsMapLayer*> QgsSLDParser::mapLayerFromStyle( const QString& layerName, c
399391
delete theVectorLayer;
400392
return resultList;
401393
}
402-
theVectorLayer->setRenderer( theRenderer );
403-
theVectorLayer->setUsingRendererV2( false );
394+
theVectorLayer->setRendererV2( theRenderer );
395+
theVectorLayer->setUsingRendererV2( true );
404396
QgsDebugMsg( "Returning the vectorlayer" );
405397
setOpacityForLayer( userLayerElement, theVectorLayer );
406398
resultList.push_back( theVectorLayer );
407399
return resultList;
408400
}
409401

410-
QgsRenderer* QgsSLDParser::rendererFromUserStyle( const QDomElement& userStyleElement, QgsVectorLayer* vec ) const
402+
QgsFeatureRendererV2* QgsSLDParser::rendererFromUserStyle( const QDomElement& userStyleElement, QgsVectorLayer* vec ) const
411403
{
412-
if ( !vec )
404+
if ( !vec || userStyleElement.isNull() )
413405
{
414406
return 0;
415407
}
416408

417409
QgsDebugMsg( "Entering" );
418410

419-
QgsSLDRenderer* theRenderer = new QgsSLDRenderer( vec->geometryType() );
420-
theRenderer->setScaleDenominator( mScaleDenominator );
421-
422-
if ( !userStyleElement.isNull() )
411+
QString errorMessage;
412+
QgsFeatureRendererV2* renderer = QgsFeatureRendererV2::loadSld( userStyleElement.parentNode(), vec->geometryType(), errorMessage );
413+
if ( !renderer )
423414
{
424-
QDomNodeList featureTypeList = userStyleElement.elementsByTagName( "FeatureTypeStyle" );
425-
for ( int i = 0; i < featureTypeList.size(); ++i )
426-
{
427-
QDomNodeList ruleNodeList = featureTypeList.item( i ).toElement().elementsByTagName( "Rule" );
428-
for ( int j = 0; j < ruleNodeList.size(); ++j )
429-
{
430-
QDomElement ruleElement = ruleNodeList.item( j ).toElement();
431-
QgsSLDRule* r = new QgsSLDRule();
432-
if ( r->setFromXml( ruleElement, vec, mFilesToRemove ) == 0 )
433-
{
434-
theRenderer->addRule( r );
435-
}
436-
else
437-
{
438-
delete r;
439-
}
440-
}
441-
}
415+
throw QgsMapServiceException( "SLD error", errorMessage );
442416
}
443-
return theRenderer;
417+
return renderer;
444418
}
445419

446420
bool QgsSLDParser::rasterSymbologyFromUserStyle( const QDomElement& userStyleElement, QgsRasterLayer* r ) const
@@ -1405,8 +1379,9 @@ QgsVectorLayer* QgsSLDParser::contourLayerFromRaster( const QDomElement& userSty
14051379
QgsVectorLayer* contourLayer = new QgsVectorLayer( tmpFileName, "layer", "ogr" );
14061380

14071381
//create renderer
1408-
QgsRenderer* theRenderer = rendererFromUserStyle( userStyleElem, contourLayer );
1409-
contourLayer->setRenderer( theRenderer );
1382+
QgsFeatureRendererV2* theRenderer = rendererFromUserStyle( userStyleElem, contourLayer );
1383+
contourLayer->setRendererV2( theRenderer );
1384+
contourLayer->setUsingRendererV2( true );
14101385

14111386
//add labelling if requested
14121387
labelSettingsFromUserStyle( userStyleElem, contourLayer );

src/mapserver/qgssldparser.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class QPen;
2727
class QgsMapLayer;
2828
class QgsVectorLayer;
2929
class QgsRasterLayer;
30-
class QgsRenderer;
30+
class QgsFeatureRendererV2;
3131

3232
#include "qgsconfigparser.h"
3333
#include "qgsmaprenderer.h"
@@ -85,7 +85,7 @@ class QgsSLDParser: public QgsConfigParser
8585
/**Don't use the default constructor*/
8686
QgsSLDParser();
8787
/**Creates a Renderer from a UserStyle SLD node. Returns 0 in case of error*/
88-
QgsRenderer* rendererFromUserStyle( const QDomElement& userStyleElement, QgsVectorLayer* vec ) const;
88+
QgsFeatureRendererV2* rendererFromUserStyle( const QDomElement& userStyleElement, QgsVectorLayer* vec ) const;
8989
/**Searches for a <TextSymbolizer> element and applies the settings to the vector layer
9090
@return true if settings have been applied, false in case of <TextSymbolizer> element not present or error*/
9191
bool labelSettingsFromUserStyle( const QDomElement& userStyleElement, QgsVectorLayer* vec ) const;

src/mapserver/qgssldrenderer.cpp

Lines changed: 0 additions & 131 deletions
This file was deleted.

src/mapserver/qgssldrenderer.h

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)