diff --git a/python/core/qgsmapsettings.sip b/python/core/qgsmapsettings.sip index ac0a36e12edd..f9b570eeb5bd 100644 --- a/python/core/qgsmapsettings.sip +++ b/python/core/qgsmapsettings.sip @@ -38,6 +38,22 @@ class QgsMapSettings void setSelectionColor( const QColor& color ); QColor selectionColor() const; + + /**Sets whether vector selections should be shown in the rendered map + * @param showSelection set to true if selections should be shown + * @see showSelection + * @see setSelectionColor + * @note Added in QGIS v2.4 + */ + void setShowSelection( const bool showSelection ); + + /**Returns true if vector selections should be shown in the rendered map + * @returns true if selections should be shown + * @see setShowSelection + * @see selectionColor + * @note Added in QGIS v2.4 + */ + bool showSelection() const; enum Flag { diff --git a/python/core/qgsrendercontext.sip b/python/core/qgsrendercontext.sip index bd74b4cfe1dd..528d63c1ee36 100644 --- a/python/core/qgsrendercontext.sip +++ b/python/core/qgsrendercontext.sip @@ -49,6 +49,14 @@ class QgsRenderContext //! Added in QGIS v2.0 QColor selectionColor() const; + + /**Returns true if vector selections should be shown in the rendered map + * @returns true if selections should be shown + * @see setShowSelection + * @see selectionColor + * @note Added in QGIS v2.4 + */ + bool showSelection() const; //setters @@ -68,6 +76,14 @@ class QgsRenderContext void setLabelingEngine( QgsLabelingEngineInterface* iface ); //! Added in QGIS v2.0 void setSelectionColor( const QColor& color ); + + /**Sets whether vector selections should be shown in the rendered map + * @param showSelection set to true if selections should be shown + * @see showSelection + * @see setSelectionColor + * @note Added in QGIS v2.4 + */ + void setShowSelection( const bool showSelection ); /**Returns true if the rendering optimization (geometry simplification) can be executed*/ bool useRenderingOptimization() const; diff --git a/src/core/composer/qgscomposermap.cpp b/src/core/composer/qgscomposermap.cpp index e2f44a0987df..3d38c68f9444 100644 --- a/src/core/composer/qgscomposermap.cpp +++ b/src/core/composer/qgscomposermap.cpp @@ -185,6 +185,7 @@ void QgsComposerMap::draw( QPainter *painter, const QgsRectangle& extent, const jobMapSettings.setOutputDpi( dpi ); jobMapSettings.setMapUnits( ms.mapUnits() ); jobMapSettings.setBackgroundColor( Qt::transparent ); + jobMapSettings.setShowSelection( false ); //set layers to render QStringList theLayerSet = layersToRender(); diff --git a/src/core/qgsmapsettings.cpp b/src/core/qgsmapsettings.cpp index dd34bcae2d39..7fb94c34e282 100644 --- a/src/core/qgsmapsettings.cpp +++ b/src/core/qgsmapsettings.cpp @@ -24,6 +24,7 @@ QgsMapSettings::QgsMapSettings() , mDestCRS( GEOCRS_ID, QgsCoordinateReferenceSystem::InternalCrsId ) // WGS 84 , mBackgroundColor( Qt::white ) , mSelectionColor( Qt::yellow ) + , mShowSelection( true ) , mFlags( Antialiasing | UseAdvancedEffects | DrawLabeling ) { updateDerived(); diff --git a/src/core/qgsmapsettings.h b/src/core/qgsmapsettings.h index 6ec5077e78a3..e6b0dac14fde 100644 --- a/src/core/qgsmapsettings.h +++ b/src/core/qgsmapsettings.h @@ -54,6 +54,22 @@ class CORE_EXPORT QgsMapSettings void setSelectionColor( const QColor& color ) { mSelectionColor = color; } QColor selectionColor() const { return mSelectionColor; } + /**Sets whether vector selections should be shown in the rendered map + * @param showSelection set to true if selections should be shown + * @see showSelection + * @see setSelectionColor + * @note Added in QGIS v2.4 + */ + void setShowSelection( const bool showSelection ) { mShowSelection = showSelection; } + + /**Returns true if vector selections should be shown in the rendered map + * @returns true if selections should be shown + * @see setShowSelection + * @see selectionColor + * @note Added in QGIS v2.4 + */ + bool showSelection() const { return mShowSelection; } + enum Flag { Antialiasing = 0x01, @@ -146,6 +162,8 @@ class CORE_EXPORT QgsMapSettings QColor mBackgroundColor; QColor mSelectionColor; + /**Whether selection should be shown in the map*/ + bool mShowSelection; Flags mFlags; diff --git a/src/core/qgsrendercontext.cpp b/src/core/qgsrendercontext.cpp index 721f31e82928..0f1567bffdda 100644 --- a/src/core/qgsrendercontext.cpp +++ b/src/core/qgsrendercontext.cpp @@ -31,6 +31,7 @@ QgsRenderContext::QgsRenderContext() mRasterScaleFactor( 1.0 ), mRendererScale( 1.0 ), mLabelingEngine( NULL ), + mShowSelection( true ), mUseRenderingOptimization( true ) { mVectorSimplifyMethod.setSimplifyHints( QgsVectorSimplifyMethod::NoSimplification ); @@ -51,6 +52,7 @@ QgsRenderContext QgsRenderContext::fromMapSettings( const QgsMapSettings& mapSet ctx.setUseRenderingOptimization( mapSettings.testFlag( QgsMapSettings::UseRenderingOptimization ) ); ctx.setCoordinateTransform( 0 ); ctx.setSelectionColor( mapSettings.selectionColor() ); + ctx.setShowSelection( mapSettings.showSelection() ); ctx.setRasterScaleFactor( 1.0 ); ctx.setScaleFactor( mapSettings.outputDpi() / 25.4 ); // = pixels per mm ctx.setRendererScale( mapSettings.scale() ); diff --git a/src/core/qgsrendercontext.h b/src/core/qgsrendercontext.h index 4008b8cd9317..a74ef1b45326 100644 --- a/src/core/qgsrendercontext.h +++ b/src/core/qgsrendercontext.h @@ -82,6 +82,14 @@ class CORE_EXPORT QgsRenderContext //! Added in QGIS v2.0 QColor selectionColor() const { return mSelectionColor; } + /**Returns true if vector selections should be shown in the rendered map + * @returns true if selections should be shown + * @see setShowSelection + * @see selectionColor + * @note Added in QGIS v2.4 + */ + bool showSelection() const { return mShowSelection; } + //setters /**Sets coordinate transformation. QgsRenderContext does not take ownership*/ @@ -101,6 +109,14 @@ class CORE_EXPORT QgsRenderContext //! Added in QGIS v2.0 void setSelectionColor( const QColor& color ) { mSelectionColor = color; } + /**Sets whether vector selections should be shown in the rendered map + * @param showSelection set to true if selections should be shown + * @see showSelection + * @see setSelectionColor + * @note Added in QGIS v2.4 + */ + void setShowSelection( const bool showSelection ) { mShowSelection = showSelection; } + /**Returns true if the rendering optimization (geometry simplification) can be executed*/ bool useRenderingOptimization() const { return mUseRenderingOptimization; } void setUseRenderingOptimization( bool enabled ) { mUseRenderingOptimization = enabled; } @@ -145,7 +161,10 @@ class CORE_EXPORT QgsRenderContext /**Labeling engine (can be NULL)*/ QgsLabelingEngineInterface* mLabelingEngine; - /** Color used for features that are marked as selected */ + /**Whether selection should be shown*/ + bool mShowSelection; + + /**Color used for features that are marked as selected */ QColor mSelectionColor; /**True if the rendering optimization (geometry simplification) can be executed*/ diff --git a/src/core/qgsvectorlayerrenderer.cpp b/src/core/qgsvectorlayerrenderer.cpp index ebac7d5ed2e5..14107846008b 100644 --- a/src/core/qgsvectorlayerrenderer.cpp +++ b/src/core/qgsvectorlayerrenderer.cpp @@ -231,7 +231,7 @@ void QgsVectorLayerRenderer::drawRendererV2( QgsFeatureIterator& fit ) break; } - bool sel = mSelectedFeatureIds.contains( fet.id() ); + bool sel = mContext.showSelection() && mSelectedFeatureIds.contains( fet.id() ); bool drawMarker = ( mDrawVertexMarkers && mContext.drawEditingInformation() && ( !mVertexMarkerOnlyForSelection || sel ) ); // render feature