Skip to content

Commit 1340677

Browse files
committedApr 9, 2015
Fix diagrams not initially showing when toggling on/off layers
1 parent e8b06c7 commit 1340677

File tree

6 files changed

+21
-3
lines changed

6 files changed

+21
-3
lines changed
 

‎python/core/qgsvectorlayer.sip

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,12 @@ class QgsVectorLayer : QgsMapLayer
427427
/** Returns the bounding box of the selected features. If there is no selection, QgsRectangle(0,0,0,0) is returned */
428428
QgsRectangle boundingBoxOfSelected();
429429

430+
/** Returns whether the layer contains diagrams which are enabled and should be drawn.
431+
* @return true if layer contains enabled diagrams
432+
* @note added in QGIS 2.9
433+
*/
434+
bool diagramsEnabled() const;
435+
430436
/** Sets diagram rendering object (takes ownership) */
431437
void setDiagramRenderer( QgsDiagramRendererV2* r /Transfer/ );
432438
const QgsDiagramRendererV2* diagramRenderer() const;

‎src/app/qgisapp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9157,7 +9157,7 @@ void QgisApp::activateDeactivateLayerRelatedActions( QgsMapLayer* layer )
91579157
{
91589158
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( it.value() );
91599159
if ( !vlayer || !vlayer->isEditable() ||
9160-
( !vlayer->diagramRenderer() && vlayer->customProperty( "labeling" ).toString() != QString( "pal" ) ) )
9160+
( !vlayer->diagramsEnabled() && vlayer->customProperty( "labeling" ).toString() != QString( "pal" ) ) )
91619161
continue;
91629162

91639163
int colX, colY, colShow, colAng;

‎src/core/qgspallabeling.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3152,7 +3152,8 @@ bool QgsPalLabeling::staticWillUseLayer( QgsVectorLayer* layer )
31523152
// don't do QgsPalLayerSettings::readFromLayer( layer ) if not needed
31533153
bool enabled = false;
31543154
if ( layer->customProperty( "labeling" ).toString() == QString( "pal" ) )
3155-
enabled = layer->customProperty( "labeling/enabled", QVariant( false ) ).toBool();
3155+
enabled = layer->customProperty( "labeling/enabled", QVariant( false ) ).toBool()
3156+
|| layer->diagramsEnabled();
31563157

31573158
return enabled;
31583159
}

‎src/core/qgsvectorlayer.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,11 @@ QgsRectangle QgsVectorLayer::boundingBoxOfSelected()
711711
return retval;
712712
}
713713

714+
bool QgsVectorLayer::diagramsEnabled() const
715+
{
716+
return mDiagramRenderer && mDiagramLayerSettings;
717+
}
718+
714719
long QgsVectorLayer::featureCount() const
715720
{
716721
if ( !mDataProvider )

‎src/core/qgsvectorlayer.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,12 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
789789
/** Returns the bounding box of the selected features. If there is no selection, QgsRectangle(0,0,0,0) is returned */
790790
QgsRectangle boundingBoxOfSelected();
791791

792+
/** Returns whether the layer contains diagrams which are enabled and should be drawn.
793+
* @return true if layer contains enabled diagrams
794+
* @note added in QGIS 2.9
795+
*/
796+
bool diagramsEnabled() const;
797+
792798
/** Sets diagram rendering object (takes ownership) */
793799
void setDiagramRenderer( QgsDiagramRendererV2* r );
794800
const QgsDiagramRendererV2* diagramRenderer() const { return mDiagramRenderer; }

‎src/core/qgsvectorlayerrenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ void QgsVectorLayerRenderer::prepareDiagrams( QgsVectorLayer* layer, QStringList
489489
if ( !mContext.labelingEngine() )
490490
return;
491491

492-
if ( !layer->diagramRenderer() || !layer->diagramLayerSettings() )
492+
if ( !layer->diagramsEnabled() )
493493
return;
494494

495495
mDiagrams = true;

0 commit comments

Comments
 (0)
Please sign in to comment.