diff --git a/python/core/layertree/qgslayertreemodellegendnode.sip b/python/core/layertree/qgslayertreemodellegendnode.sip index 99ba2971aa1..689bbd37dfb 100644 --- a/python/core/layertree/qgslayertreemodellegendnode.sip +++ b/python/core/layertree/qgslayertreemodellegendnode.sip @@ -156,7 +156,7 @@ class QgsSymbolLegendNode : QgsLayerTreeModelLegendNode * render context in advance and call this method instead of minimumIconSize(). * @note added in QGIS 2.18 */ - QSize minimumIconSize( QgsRenderContext &context ) const; + QSize minimumIconSize( QgsRenderContext* context ) const; /** Returns the symbol used by the legend node. * @see setSymbol() diff --git a/src/core/layertree/qgslayertreemodel.cpp b/src/core/layertree/qgslayertreemodel.cpp index e170d1f9ffb..3d325dfc096 100644 --- a/src/core/layertree/qgslayertreemodel.cpp +++ b/src/core/layertree/qgslayertreemodel.cpp @@ -1497,7 +1497,7 @@ void QgsLayerTreeModel::invalidateLegendMapBasedData() QgsSymbolLegendNode* n = dynamic_cast( legendNode ); if ( n ) { - const QSize sz( n->minimumIconSize( *context ) ); + const QSize sz( n->minimumIconSize( context.data() ) ); const QString parentKey( n->data( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString() ); widthMax[parentKey] = qMax( sz.width(), widthMax.contains( parentKey ) ? widthMax[parentKey] : 0 ); n->setIconSize( sz ); diff --git a/src/core/layertree/qgslayertreemodellegendnode.cpp b/src/core/layertree/qgslayertreemodellegendnode.cpp index ab751f23bcc..fc232c010c8 100644 --- a/src/core/layertree/qgslayertreemodellegendnode.cpp +++ b/src/core/layertree/qgslayertreemodellegendnode.cpp @@ -159,17 +159,17 @@ Qt::ItemFlags QgsSymbolLegendNode::flags() const QSize QgsSymbolLegendNode::minimumIconSize() const { QScopedPointer context( createTemporaryRenderContext() ); - return minimumIconSize( *context ); + return minimumIconSize( context.data() ); } -QSize QgsSymbolLegendNode::minimumIconSize( QgsRenderContext& context ) const +QSize QgsSymbolLegendNode::minimumIconSize( QgsRenderContext* context ) const { QSize minSz( 16, 16 ); if ( mItem.symbol() && mItem.symbol()->type() == QgsSymbol::Marker ) { minSz = QgsImageOperation::nonTransparentImageRect( QgsSymbolLayerUtils::symbolPreviewPixmap( mItem.symbol(), QSize( 512, 512 ), - &context ).toImage(), + context ).toImage(), minSz, true ).size(); } @@ -177,7 +177,7 @@ QSize QgsSymbolLegendNode::minimumIconSize( QgsRenderContext& context ) const { minSz = QgsImageOperation::nonTransparentImageRect( QgsSymbolLayerUtils::symbolPreviewPixmap( mItem.symbol(), QSize( minSz.width(), 512 ), - &context ).toImage(), + context ).toImage(), minSz, true ).size(); }