diff --git a/python/core/symbology-ng/qgsinvertedpolygonrenderer.sip b/python/core/symbology-ng/qgsinvertedpolygonrenderer.sip index 84cf011d0df..c77b1fe71ec 100644 --- a/python/core/symbology-ng/qgsinvertedpolygonrenderer.sip +++ b/python/core/symbology-ng/qgsinvertedpolygonrenderer.sip @@ -5,66 +5,70 @@ class QgsInvertedPolygonRenderer : QgsFeatureRendererV2 %End public: - /** Constructor - * @param embeddedRenderer optional embeddedRenderer. If null, a default one will be assigned - */ - QgsInvertedPolygonRenderer( const QgsFeatureRendererV2* embeddedRenderer /Transfer/ = 0 ); - virtual ~QgsInvertedPolygonRenderer(); + /** Constructor + * @param embeddedRenderer optional embeddedRenderer. If null, a default one will be assigned + */ + QgsInvertedPolygonRenderer( const QgsFeatureRendererV2* embeddedRenderer /Transfer/ = 0 ); + virtual ~QgsInvertedPolygonRenderer(); - /** Used to clone this feature renderer.*/ - virtual QgsFeatureRendererV2* clone() /Factory/; + /** Used to clone this feature renderer.*/ + virtual QgsFeatureRendererV2* clone() /Factory/; - virtual void startRender( QgsRenderContext& context, const QgsFields& fields ); + virtual void startRender( QgsRenderContext& context, const QgsFields& fields ); - /** Renders a given feature. - * This will here collect features. The actual rendering will be postponed to stopRender() - * @param feature the feature to render - * @param context the rendering context - * @param layer the symbol layer to render, if that makes sense - * @param selected whether this feature has been selected (this will add decorations) - * @param drawVertexMarker whether this feature has vertex markers (in edit mode usually) - * @returns true if the rendering was ok - */ - virtual bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false ); + /** Renders a given feature. + * This will here collect features. The actual rendering will be postponed to stopRender() + * @param feature the feature to render + * @param context the rendering context + * @param layer the symbol layer to render, if that makes sense + * @param selected whether this feature has been selected (this will add decorations) + * @param drawVertexMarker whether this feature has vertex markers (in edit mode usually) + * @returns true if the rendering was ok + */ + virtual bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false ); - /** - * The actual rendering will take place here. - * Features collected during renderFeature() are rendered using the embedded feature renderer - */ - virtual void stopRender( QgsRenderContext& context ); + /** + * The actual rendering will take place here. + * Features collected during renderFeature() are rendered using the embedded feature renderer + */ + virtual void stopRender( QgsRenderContext& context ); - /** @returns a textual reprensation of the renderer */ - virtual QString dump() const; + /** @returns a textual representation of the renderer */ + virtual QString dump() const; - /** Proxy that will call this method on the embedded renderer. */ - virtual QList usedAttributes(); - /** Proxy that will call this method on the embedded renderer. */ - virtual int capabilities(); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2List symbols(); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature ); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2List symbolsForFeature( QgsFeature& feat ); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ); - /** Proxy that will call this method on the embedded renderer. */ - virtual bool willRenderFeature( QgsFeature& feat ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QList usedAttributes(); + /** Proxy that will call this method on the embedded renderer. */ + virtual int capabilities(); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2List symbols(); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2List symbolsForFeature( QgsFeature& feat ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ); + /** Proxy that will call this method on the embedded renderer. + @note not available in python bindings + */ + // virtual QgsLegendSymbolList legendSymbolItems( double scaleDenominator = -1, QString rule = "" ); + /** Proxy that will call this method on the embedded renderer. */ + virtual bool willRenderFeature( QgsFeature& feat ); - /** Creates a renderer out of an XML, for loading*/ - static QgsFeatureRendererV2* create( QDomElement& element ) /Factory/; + /** Creates a renderer out of an XML, for loading*/ + static QgsFeatureRendererV2* create( QDomElement& element ) /Factory/; - /** Creates an XML representation of the renderer. Used for saving purpose - * @param doc the XML document where to create the XML subtree - * @returns the created XML subtree - */ - virtual QDomElement save( QDomDocument& doc ); + /** Creates an XML representation of the renderer. Used for saving purpose + * @param doc the XML document where to create the XML subtree + * @returns the created XML subtree + */ + virtual QDomElement save( QDomDocument& doc ); - /** sets the embedded renderer - * @param subRenderer the embedded renderer (will be cloned) - */ - void setEmbeddedRenderer( const QgsFeatureRendererV2* subRenderer ); - /** @returns the current embedded renderer - */ - const QgsFeatureRendererV2* embeddedRenderer() const; + /** sets the embedded renderer + * @param subRenderer the embedded renderer (will be cloned) + */ + void setEmbeddedRenderer( const QgsFeatureRendererV2* subRenderer ); + /** @returns the current embedded renderer + */ + const QgsFeatureRendererV2* embeddedRenderer() const; }; diff --git a/python/gui/symbology-ng/qgsinvertedpolygonrendererwidget.sip b/python/gui/symbology-ng/qgsinvertedpolygonrendererwidget.sip index 78d5962c731..4a1ef486c54 100644 --- a/python/gui/symbology-ng/qgsinvertedpolygonrendererwidget.sip +++ b/python/gui/symbology-ng/qgsinvertedpolygonrendererwidget.sip @@ -3,21 +3,21 @@ class QgsInvertedPolygonRendererWidget : QgsRendererV2Widget %TypeHeaderCode #include %End - public: - /** static creation method - * @param layer the layer where this renderer is applied - * @param style - * @param renderer the mask renderer (will take ownership) - */ - static QgsRendererV2Widget* create( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) /Factory/; + public: + /** static creation method + * @param layer the layer where this renderer is applied + * @param style + * @param renderer the mask renderer (will take ownership) + */ + static QgsRendererV2Widget* create( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) /Factory/; - /** Constructor - * @param layer the layer where this renderer is applied - * @param style - * @param renderer the mask renderer (will take ownership) - */ - QgsInvertedPolygonRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); + /** Constructor + * @param layer the layer where this renderer is applied + * @param style + * @param renderer the mask renderer (will take ownership) + */ + QgsInvertedPolygonRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); - /** @returns the current feature renderer */ - virtual QgsFeatureRendererV2* renderer(); + /** @returns the current feature renderer */ + virtual QgsFeatureRendererV2* renderer(); }; diff --git a/scripts/astyle-all.sh b/scripts/astyle-all.sh index 894f8f62e7c..274183266dc 100755 --- a/scripts/astyle-all.sh +++ b/scripts/astyle-all.sh @@ -22,30 +22,6 @@ set -e export elcr="$(tput el)$(tput cr)" find python src tests -type f -print | while read f; do - case "$f" in - src/app/gps/qwtpolar-*|src/core/spatialite/*|src/core/spatialindex/src/*|src/core/gps/qextserialport/*|src/plugins/grass/qtermwidget/*|src/astyle/*|python/ext-libs/*|src/providers/sqlanywhere/sqlanyconnection/*|src/providers/spatialite/qspatialite/*|src/plugins/dxf2shp_converter/dxflib/src/*|src/plugins/globe/osgEarthQt/*|src/plugins/globe/osgEarthUtil/*) - echo $f skipped - continue - ;; - - *.cpp|*.h|*.c|*.h|*.cxx|*.hxx|*.c++|*.h++|*.cc|*.hh|*.C|*.H|*.hpp) - cmd=astyle.sh - ;; - - *.ui|*.qgm|*.txt|*.t2t|*.sip|resources/context_help/*) - cmd="flip -ub" - ;; - - *.py) - cmd="perl -i.prepare -pe 's/[\r\t ]+$//;'" - ;; - - *) - echo -ne "$f skipped $elcr" - continue - ;; - esac - if [ -f "$f.astyle" ]; then # reformat backup cp "$f.astyle" "$f" @@ -56,8 +32,8 @@ find python src tests -type f -print | while read f; do touch -r "$f" "$f.astyle" fi - echo -ne "Reformating $f $elcr" - eval "$cmd '$f'" + echo -ne "Reformatting $f $elcr" + astyle.sh "$f" done echo diff --git a/scripts/astyle.sh b/scripts/astyle.sh index 17d6691ef50..7025e4725d4 100755 --- a/scripts/astyle.sh +++ b/scripts/astyle.sh @@ -59,6 +59,30 @@ $ARTISTIC_STYLE_OPTIONS \ --unpad=paren" for f in "$@"; do + case "$f" in + src/app/gps/qwtpolar-*|src/core/spatialite/*|src/core/spatialindex/src/*|src/core/gps/qextserialport/*|src/plugins/grass/qtermwidget/*|src/astyle/*|python/ext-libs/*|src/providers/sqlanywhere/sqlanyconnection/*|src/providers/spatialite/qspatialite/*|src/plugins/dxf2shp_converter/dxflib/src/*|src/plugins/globe/osgEarthQt/*|src/plugins/globe/osgEarthUtil/*) + echo $f skipped + continue + ;; + + *.cpp|*.h|*.c|*.h|*.cxx|*.hxx|*.c++|*.h++|*.cc|*.hh|*.C|*.H|*.hpp) + cmd="$ASTYLE $ARTISTIC_STYLE_OPTIONS" + ;; + + *.ui|*.qgm|*.txt|*.t2t|*.sip|resources/context_help/*) + cmd=: + ;; + + *.py) + cmd="perl -i.prepare -pe 's/[\r\t ]+$//;'" + ;; + + *) + echo -ne "$f skipped $elcr" + continue + ;; + esac + if ! [ -f "$f" ]; then echo "$f not found" >&2 continue @@ -66,5 +90,5 @@ for f in "$@"; do flip -ub "$f" #qgsloggermig.pl "$f" - $ASTYLE $ARTISTIC_STYLE_OPTIONS "$f" + eval "$cmd '$f'" done diff --git a/src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp b/src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp index 1748f7f0194..fad9f2116d9 100644 --- a/src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp +++ b/src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp @@ -28,12 +28,14 @@ #include QgsInvertedPolygonRenderer::QgsInvertedPolygonRenderer( const QgsFeatureRendererV2* subRenderer ) - : QgsFeatureRendererV2( "invertedPolygonRenderer" ) + : QgsFeatureRendererV2( "invertedPolygonRenderer" ) { - if ( subRenderer ) { + if ( subRenderer ) + { setEmbeddedRenderer( subRenderer ); } - else { + else + { mSubRenderer.reset( QgsFeatureRendererV2::defaultRenderer( QGis::Polygon ) ); } } @@ -44,10 +46,12 @@ QgsInvertedPolygonRenderer::~QgsInvertedPolygonRenderer() void QgsInvertedPolygonRenderer::setEmbeddedRenderer( const QgsFeatureRendererV2* subRenderer ) { - if ( subRenderer ) { - mSubRenderer.reset( const_cast(subRenderer)->clone() ); + if ( subRenderer ) + { + mSubRenderer.reset( const_cast( subRenderer )->clone() ); } - else { + else + { mSubRenderer.reset( 0 ); } } @@ -59,7 +63,8 @@ const QgsFeatureRendererV2* QgsInvertedPolygonRenderer::embeddedRenderer() const void QgsInvertedPolygonRenderer::startRender( QgsRenderContext& context, const QgsFields& fields ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return; } @@ -90,14 +95,14 @@ void QgsInvertedPolygonRenderer::startRender( QgsRenderContext& context, const Q // If we don't do that, there is no need to have a simple rectangular extent // that covers the whole screen // (a rectangle in the destCRS cannot be expressed as valid coordinates in the sourceCRS in general) - if (mTransform) + if ( mTransform ) { // disable projection - context.setCoordinateTransform(0); + context.setCoordinateTransform( 0 ); } mExtentPolygon.clear(); - mExtentPolygon.append(exteriorRing); + mExtentPolygon.append( exteriorRing ); } bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer, bool selected, bool drawVertexMarker ) @@ -107,7 +112,7 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo // store this feature as a feature to render with decoration if needed if ( selected || drawVertexMarker ) { - mFeatureDecorations.append( FeatureDecoration( feature, selected, drawVertexMarker, layer) ); + mFeatureDecorations.append( FeatureDecoration( feature, selected, drawVertexMarker, layer ) ); } // Features are grouped by category of symbols (returned by symbol(s)ForFeature) @@ -116,7 +121,7 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo // that have transparency. // // In order to assign a unique category to a set of symbols - // during each rendering session (between startRender() and stopRender()), + // during each rendering session (between startRender() and stopRender()), // we build an unique id as a QByteArray that is the concatenation // of each symbol's memory address. // The only assumption made here is that symbol(s)ForFeature will @@ -125,19 +130,21 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo // This QByteArray can then be used as a key for a QMap where the list of // features for this category is stored QByteArray catId; - if ( capabilities() & MoreSymbolsPerFeature ) { + if ( capabilities() & MoreSymbolsPerFeature ) + { QgsSymbolV2List syms( mSubRenderer->symbolsForFeature( feature ) ); foreach ( QgsSymbolV2* sym, syms ) { // append the memory address - catId.append( reinterpret_cast(&sym), sizeof(sym) ); + catId.append( reinterpret_cast( &sym ), sizeof( sym ) ); } } else { QgsSymbolV2* sym = mSubRenderer->symbolForFeature( feature ); - if (sym) { - catId.append( reinterpret_cast(&sym), sizeof(sym) ); + if ( sym ) + { + catId.append( reinterpret_cast( &sym ), sizeof( sym ) ); } } @@ -155,7 +162,7 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo // // No validity check is done, on purpose, it will be very slow and painting // operations do not need geometries to be valid - if ( ! mFeaturesCategoryMap.contains(catId) ) + if ( ! mFeaturesCategoryMap.contains( catId ) ) { // the exterior ring must be a square in the destination CRS CombinedFeature cFeat; @@ -173,21 +180,26 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo { return false; } - if ( (geom->wkbType() == QGis::WKBPolygon) || - (geom->wkbType() == QGis::WKBPolygon25D) ) { - multi.append(geom->asPolygon() ); + if (( geom->wkbType() == QGis::WKBPolygon ) || + ( geom->wkbType() == QGis::WKBPolygon25D ) ) + { + multi.append( geom->asPolygon() ); } - else if ( (geom->wkbType() == QGis::WKBMultiPolygon) || - (geom->wkbType() == QGis::WKBMultiPolygon25D) ) { + else if (( geom->wkbType() == QGis::WKBMultiPolygon ) || + ( geom->wkbType() == QGis::WKBMultiPolygon25D ) ) + { multi = geom->asMultiPolygon(); } - for ( int i = 0; i < multi.size(); i++ ) { + for ( int i = 0; i < multi.size(); i++ ) + { // add the exterior ring as interior ring to the first polygon - if ( mTransform ) { + if ( mTransform ) + { QgsPolyline new_ls; QgsPolyline& old_ls = multi[i][0]; - for ( int k = 0; k < old_ls.size(); k++ ) { + for ( int k = 0; k < old_ls.size(); k++ ) + { new_ls.append( mTransform->transform( old_ls[k] ) ); } cFeat.multiPolygon[0].append( new_ls ); @@ -197,12 +209,15 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo cFeat.multiPolygon[0].append( multi[i][0] ); } // add interior rings as new polygons - for ( int j = 1; j < multi[i].size(); j++ ) { + for ( int j = 1; j < multi[i].size(); j++ ) + { QgsPolygon new_poly; - if ( mTransform ) { + if ( mTransform ) + { QgsPolyline new_ls; QgsPolyline& old_ls = multi[i][j]; - for ( int k = 0; k < old_ls.size(); k++ ) { + for ( int k = 0; k < old_ls.size(); k++ ) + { new_ls.append( mTransform->transform( old_ls[k] ) ); } new_poly.append( new_ls ); @@ -220,11 +235,12 @@ bool QgsInvertedPolygonRenderer::renderFeature( QgsFeature& feature, QgsRenderCo void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return; } - for ( FeatureCategoryMap::iterator cit = mFeaturesCategoryMap.begin(); cit != mFeaturesCategoryMap.end(); ++cit) + for ( FeatureCategoryMap::iterator cit = mFeaturesCategoryMap.begin(); cit != mFeaturesCategoryMap.end(); ++cit ) { QgsFeature feat( cit.value().feature ); feat.setGeometry( QgsGeometry::fromMultiPolygon( cit.value().multiPolygon ) ); @@ -244,7 +260,7 @@ void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context ) } // draw feature decorations - foreach (FeatureDecoration deco, mFeatureDecorations ) + foreach ( FeatureDecoration deco, mFeatureDecorations ) { mSubRenderer->renderFeature( deco.feature, context, deco.layer, deco.selected, deco.drawMarkers ); } @@ -260,7 +276,8 @@ void QgsInvertedPolygonRenderer::stopRender( QgsRenderContext& context ) QString QgsInvertedPolygonRenderer::dump() const { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return "INVERTED: NULL"; } return "INVERTED [" + mSubRenderer->dump() + "]"; @@ -304,7 +321,8 @@ QDomElement QgsInvertedPolygonRenderer::save( QDomDocument& doc ) QgsSymbolV2* QgsInvertedPolygonRenderer::symbolForFeature( QgsFeature& feature ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return 0; } return mSubRenderer->symbolForFeature( feature ); @@ -312,7 +330,8 @@ QgsSymbolV2* QgsInvertedPolygonRenderer::symbolForFeature( QgsFeature& feature ) QgsSymbolV2List QgsInvertedPolygonRenderer::symbolsForFeature( QgsFeature& feature ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return QgsSymbolV2List(); } return mSubRenderer->symbolsForFeature( feature ); @@ -320,7 +339,8 @@ QgsSymbolV2List QgsInvertedPolygonRenderer::symbolsForFeature( QgsFeature& featu QgsSymbolV2List QgsInvertedPolygonRenderer::symbols() { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return QgsSymbolV2List(); } return mSubRenderer->symbols(); @@ -328,7 +348,8 @@ QgsSymbolV2List QgsInvertedPolygonRenderer::symbols() int QgsInvertedPolygonRenderer::capabilities() { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return 0; } return mSubRenderer->capabilities(); @@ -336,7 +357,8 @@ int QgsInvertedPolygonRenderer::capabilities() QList QgsInvertedPolygonRenderer::usedAttributes() { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return QList(); } return mSubRenderer->usedAttributes(); @@ -344,7 +366,8 @@ QList QgsInvertedPolygonRenderer::usedAttributes() QgsLegendSymbologyList QgsInvertedPolygonRenderer::legendSymbologyItems( QSize iconSize ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return QgsLegendSymbologyList(); } return mSubRenderer->legendSymbologyItems( iconSize ); @@ -352,7 +375,8 @@ QgsLegendSymbologyList QgsInvertedPolygonRenderer::legendSymbologyItems( QSize i QgsLegendSymbolList QgsInvertedPolygonRenderer::legendSymbolItems( double scaleDenominator, QString rule ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return QgsLegendSymbolList(); } return mSubRenderer->legendSymbolItems( scaleDenominator, rule ); @@ -360,7 +384,8 @@ QgsLegendSymbolList QgsInvertedPolygonRenderer::legendSymbolItems( double scaleD bool QgsInvertedPolygonRenderer::willRenderFeature( QgsFeature& feat ) { - if ( !mSubRenderer ) { + if ( !mSubRenderer ) + { return false; } return mSubRenderer->willRenderFeature( feat ); diff --git a/src/core/symbology-ng/qgsinvertedpolygonrenderer.h b/src/core/symbology-ng/qgsinvertedpolygonrenderer.h index db1b2a66667..2315ac6c044 100644 --- a/src/core/symbology-ng/qgsinvertedpolygonrenderer.h +++ b/src/core/symbology-ng/qgsinvertedpolygonrenderer.h @@ -31,7 +31,7 @@ * * It is designed on top of another feature renderer, which is called "embedded" * Most of the methods are then only proxies to the embedded renderer. - * + * * Features are collected to form one "inverted" polygon * during renderFeature() and rendered on stopRender(). * @@ -41,112 +41,114 @@ class CORE_EXPORT QgsInvertedPolygonRenderer : public QgsFeatureRendererV2 { public: - /** Constructor - * @param embeddedRenderer optional embeddedRenderer. If null, a default one will be assigned - */ - QgsInvertedPolygonRenderer( const QgsFeatureRendererV2* embeddedRenderer = 0 ); - virtual ~QgsInvertedPolygonRenderer(); + /** Constructor + * @param embeddedRenderer optional embeddedRenderer. If null, a default one will be assigned + */ + QgsInvertedPolygonRenderer( const QgsFeatureRendererV2* embeddedRenderer = 0 ); + virtual ~QgsInvertedPolygonRenderer(); - /** Used to clone this feature renderer.*/ - virtual QgsFeatureRendererV2* clone(); + /** Used to clone this feature renderer.*/ + virtual QgsFeatureRendererV2* clone(); - virtual void startRender( QgsRenderContext& context, const QgsFields& fields ); + virtual void startRender( QgsRenderContext& context, const QgsFields& fields ); - /** Renders a given feature. - * This will here collect features. The actual rendering will be postponed to stopRender() - * @param feature the feature to render - * @param context the rendering context - * @param layer the symbol layer to render, if that makes sense - * @param selected whether this feature has been selected (this will add decorations) - * @param drawVertexMarker whether this feature has vertex markers (in edit mode usually) - * @returns true if the rendering was ok - */ - virtual bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false ); + /** Renders a given feature. + * This will here collect features. The actual rendering will be postponed to stopRender() + * @param feature the feature to render + * @param context the rendering context + * @param layer the symbol layer to render, if that makes sense + * @param selected whether this feature has been selected (this will add decorations) + * @param drawVertexMarker whether this feature has vertex markers (in edit mode usually) + * @returns true if the rendering was ok + */ + virtual bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false ); - /** - * The actual rendering will take place here. - * Features collected during renderFeature() are rendered using the embedded feature renderer - */ - virtual void stopRender( QgsRenderContext& context ); + /** + * The actual rendering will take place here. + * Features collected during renderFeature() are rendered using the embedded feature renderer + */ + virtual void stopRender( QgsRenderContext& context ); - /** @returns a textual reprensation of the renderer */ - virtual QString dump() const; + /** @returns a textual representation of the renderer */ + virtual QString dump() const; - /** Proxy that will call this method on the embedded renderer. */ - virtual QList usedAttributes(); - /** Proxy that will call this method on the embedded renderer. */ - virtual int capabilities(); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2List symbols(); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature ); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsSymbolV2List symbolsForFeature( QgsFeature& feat ); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ); - /** Proxy that will call this method on the embedded renderer. */ - virtual QgsLegendSymbolList legendSymbolItems( double scaleDenominator = -1, QString rule = "" ); - /** Proxy that will call this method on the embedded renderer. */ - virtual bool willRenderFeature( QgsFeature& feat ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QList usedAttributes(); + /** Proxy that will call this method on the embedded renderer. */ + virtual int capabilities(); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2List symbols(); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsSymbolV2List symbolsForFeature( QgsFeature& feat ); + /** Proxy that will call this method on the embedded renderer. */ + virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize ); + /** Proxy that will call this method on the embedded renderer. + @note not available in python bindings + */ + virtual QgsLegendSymbolList legendSymbolItems( double scaleDenominator = -1, QString rule = "" ); + /** Proxy that will call this method on the embedded renderer. */ + virtual bool willRenderFeature( QgsFeature& feat ); - /** Creates a renderer out of an XML, for loading*/ - static QgsFeatureRendererV2* create( QDomElement& element ); + /** Creates a renderer out of an XML, for loading*/ + static QgsFeatureRendererV2* create( QDomElement& element ); - /** Creates an XML representation of the renderer. Used for saving purpose - * @param doc the XML document where to create the XML subtree - * @returns the created XML subtree - */ - virtual QDomElement save( QDomDocument& doc ); + /** Creates an XML representation of the renderer. Used for saving purpose + * @param doc the XML document where to create the XML subtree + * @returns the created XML subtree + */ + virtual QDomElement save( QDomDocument& doc ); - /** sets the embedded renderer - * @param subRenderer the embedded renderer (will be cloned) - */ - void setEmbeddedRenderer( const QgsFeatureRendererV2* subRenderer ); - /** @returns the current embedded renderer - */ - const QgsFeatureRendererV2* embeddedRenderer() const; + /** sets the embedded renderer + * @param subRenderer the embedded renderer (will be cloned) + */ + void setEmbeddedRenderer( const QgsFeatureRendererV2* subRenderer ); + /** @returns the current embedded renderer + */ + const QgsFeatureRendererV2* embeddedRenderer() const; - private: - /** Private copy constructor. @see clone() */ - QgsInvertedPolygonRenderer( const QgsInvertedPolygonRenderer& ); - /** Private assignment operator. @see clone() */ - QgsInvertedPolygonRenderer& operator=( const QgsInvertedPolygonRenderer& ); + private: + /** Private copy constructor. @see clone() */ + QgsInvertedPolygonRenderer( const QgsInvertedPolygonRenderer& ); + /** Private assignment operator. @see clone() */ + QgsInvertedPolygonRenderer& operator=( const QgsInvertedPolygonRenderer& ); - /** Embedded renderer */ - QScopedPointer mSubRenderer; + /** Embedded renderer */ + QScopedPointer mSubRenderer; - /** Structure where the reversed geometry is built during renderFeature */ - struct CombinedFeature - { - QgsMultiPolygon multiPolygon; //< the final combined geometry - QgsFeature feature; //< one feature (for attriute-based rendering) - }; - typedef QMap< QByteArray, CombinedFeature > FeatureCategoryMap; - /** where features are stored, based on their symbol category */ - FeatureCategoryMap mFeaturesCategoryMap; + /** Structure where the reversed geometry is built during renderFeature */ + struct CombinedFeature + { + QgsMultiPolygon multiPolygon; //< the final combined geometry + QgsFeature feature; //< one feature (for attriute-based rendering) + }; + typedef QMap< QByteArray, CombinedFeature > FeatureCategoryMap; + /** where features are stored, based on their symbol category */ + FeatureCategoryMap mFeaturesCategoryMap; - /** the polygon used as exterior ring that covers the current extent */ - QgsPolygon mExtentPolygon; + /** the polygon used as exterior ring that covers the current extent */ + QgsPolygon mExtentPolygon; - /** the current coordinate transform (or null) */ - const QgsCoordinateTransform* mTransform; + /** the current coordinate transform (or null) */ + const QgsCoordinateTransform* mTransform; - /** fields of each feature*/ - QgsFields mFields; + /** fields of each feature*/ + QgsFields mFields; - /** Class used to represent features that must be rendered - with decorations (selection, vertex markers) - */ - struct FeatureDecoration - { - QgsFeature feature; - bool selected; - bool drawMarkers; - int layer; - FeatureDecoration( QgsFeature& a_feature, bool a_selected, bool a_drawMarkers, int a_layer ) : - feature(a_feature),selected(a_selected), drawMarkers(a_drawMarkers), layer(a_layer) {} - }; - QList mFeatureDecorations; + /** Class used to represent features that must be rendered + with decorations (selection, vertex markers) + */ + struct FeatureDecoration + { + QgsFeature feature; + bool selected; + bool drawMarkers; + int layer; + FeatureDecoration( QgsFeature& a_feature, bool a_selected, bool a_drawMarkers, int a_layer ) : + feature( a_feature ), selected( a_selected ), drawMarkers( a_drawMarkers ), layer( a_layer ) {} + }; + QList mFeatureDecorations; }; diff --git a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp index b7141989a11..ccdd3ba7aef 100644 --- a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp +++ b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp @@ -29,7 +29,8 @@ QgsRendererV2Widget* QgsInvertedPolygonRendererWidget::create( QgsVectorLayer* l QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ) : QgsRendererV2Widget( layer, style ) { - if ( !layer ) { + if ( !layer ) + { return; } @@ -66,7 +67,7 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay else { // an existing inverted renderer - mRenderer.reset( static_cast(renderer) ); + mRenderer.reset( static_cast( renderer ) ); } int currentEmbeddedIdx = 0; @@ -78,7 +79,7 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay for ( ; it != rendererList.constEnd(); ++it, ++idx ) { if (( *it != "invertedPolygonRenderer" ) && //< an inverted renderer cannot contain another inverted renderer - ( *it != "pointDisplacement" )) //< an inverted renderer can only contain a polygon renderer + ( *it != "pointDisplacement" ) ) //< an inverted renderer can only contain a polygon renderer { QgsRendererV2AbstractMetadata* m = QgsRendererV2Registry::instance()->rendererMetadata( *it ); mRendererComboBox->addItem( m->icon(), m->visibleName(), /* data */ *it ); @@ -120,9 +121,10 @@ void QgsInvertedPolygonRendererWidget::on_mRendererComboBox_currentIndexChanged( QgsRendererV2AbstractMetadata* m = QgsRendererV2Registry::instance()->rendererMetadata( rendererId ); if ( m ) { - mEmbeddedRendererWidget.reset( m->createRendererWidget( mLayer, mStyle, const_cast(mRenderer->embeddedRenderer())->clone() ) ); + mEmbeddedRendererWidget.reset( m->createRendererWidget( mLayer, mStyle, const_cast( mRenderer->embeddedRenderer() )->clone() ) ); - if ( mLayout->count() > 1 ) { + if ( mLayout->count() > 1 ) + { // remove the current renderer widget mLayout->takeAt( 1 ); } diff --git a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h index f3cd36c4719..15a956507be 100644 --- a/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h +++ b/src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h @@ -28,34 +28,34 @@ class QMenu; */ class GUI_EXPORT QgsInvertedPolygonRendererWidget : public QgsRendererV2Widget, private Ui::QgsInvertedPolygonRendererWidgetBase { - Q_OBJECT + Q_OBJECT - public: - /** static creation method - * @param layer the layer where this renderer is applied - * @param style - * @param renderer the mask renderer (will take ownership) - */ - static QgsRendererV2Widget* create( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); + public: + /** static creation method + * @param layer the layer where this renderer is applied + * @param style + * @param renderer the mask renderer (will take ownership) + */ + static QgsRendererV2Widget* create( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); - /** Constructor - * @param layer the layer where this renderer is applied - * @param style - * @param renderer the mask renderer (will take ownership) - */ - QgsInvertedPolygonRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); + /** Constructor + * @param layer the layer where this renderer is applied + * @param style + * @param renderer the mask renderer (will take ownership) + */ + QgsInvertedPolygonRendererWidget( QgsVectorLayer* layer, QgsStyleV2* style, QgsFeatureRendererV2* renderer ); - /** @returns the current feature renderer */ - virtual QgsFeatureRendererV2* renderer(); + /** @returns the current feature renderer */ + virtual QgsFeatureRendererV2* renderer(); - protected: - /** the mask renderer */ - QScopedPointer mRenderer; - /** the widget used to represent the mask's embedded renderer */ - QScopedPointer mEmbeddedRendererWidget; + protected: + /** the mask renderer */ + QScopedPointer mRenderer; + /** the widget used to represent the mask's embedded renderer */ + QScopedPointer mEmbeddedRendererWidget; - private slots: - void on_mRendererComboBox_currentIndexChanged( int index ); + private slots: + void on_mRendererComboBox_currentIndexChanged( int index ); };