diff --git a/python/core/auto_generated/layertree/qgslayertreemodellegendnode.sip.in b/python/core/auto_generated/layertree/qgslayertreemodellegendnode.sip.in index b404e681dfc..401c396829e 100644 --- a/python/core/auto_generated/layertree/qgslayertreemodellegendnode.sip.in +++ b/python/core/auto_generated/layertree/qgslayertreemodellegendnode.sip.in @@ -76,6 +76,7 @@ Default implementation does nothing. * struct ItemContext { + QgsRenderContext *context; QPainter *painter; QPointF point; double labelXOffset; diff --git a/src/core/layertree/qgslayertreemodellegendnode.h b/src/core/layertree/qgslayertreemodellegendnode.h index 15bceda515f..ac4d0bcbd2f 100644 --- a/src/core/layertree/qgslayertreemodellegendnode.h +++ b/src/core/layertree/qgslayertreemodellegendnode.h @@ -86,6 +86,8 @@ class CORE_EXPORT QgsLayerTreeModelLegendNode : public QObject struct ItemContext { + //! Render context, if available + QgsRenderContext *context = nullptr; //! Painter QPainter *painter = nullptr; //! Top-left corner of the legend item diff --git a/src/core/qgslegendrenderer.cpp b/src/core/qgslegendrenderer.cpp index ff6baae977c..28f65bf5e65 100644 --- a/src/core/qgslegendrenderer.cpp +++ b/src/core/qgslegendrenderer.cpp @@ -536,6 +536,7 @@ QgsLegendRenderer::Nucleon QgsLegendRenderer::drawSymbolItem( QgsLayerTreeModelL QgsLegendRenderer::Nucleon QgsLegendRenderer::drawSymbolItemInternal( QgsLayerTreeModelLegendNode *symbolItem, QgsRenderContext *context, QPainter *painter, QPointF point, double labelXOffset ) { QgsLayerTreeModelLegendNode::ItemContext ctx; + ctx.context = context; ctx.painter = context ? context->painter() : painter; ctx.point = point; ctx.labelXOffset = labelXOffset;