diff --git a/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in b/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in index 2f127f1875a..5e6cbfbe4e9 100644 --- a/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in +++ b/python/gui/auto_generated/symbology/qgs25drendererwidget.sip.in @@ -33,6 +33,7 @@ Constructor :param style: :param renderer: the mask renderer (will not take ownership) %End + ~Qgs25DRendererWidget(); virtual QgsFeatureRenderer *renderer(); diff --git a/python/gui/auto_generated/symbology/qgsembeddedsymbolrendererwidget.sip.in b/python/gui/auto_generated/symbology/qgsembeddedsymbolrendererwidget.sip.in index 2877cce0c13..74e36c341a6 100644 --- a/python/gui/auto_generated/symbology/qgsembeddedsymbolrendererwidget.sip.in +++ b/python/gui/auto_generated/symbology/qgsembeddedsymbolrendererwidget.sip.in @@ -38,6 +38,7 @@ Constructor :param style: :param renderer: the merged feature renderer (will not take ownership) %End + ~QgsEmbeddedSymbolRendererWidget(); virtual QgsFeatureRenderer *renderer(); diff --git a/python/gui/auto_generated/symbology/qgsheatmaprendererwidget.sip.in b/python/gui/auto_generated/symbology/qgsheatmaprendererwidget.sip.in index c6460b7950b..f5a0cf7aa61 100644 --- a/python/gui/auto_generated/symbology/qgsheatmaprendererwidget.sip.in +++ b/python/gui/auto_generated/symbology/qgsheatmaprendererwidget.sip.in @@ -33,6 +33,7 @@ Constructor :param style: :param renderer: the mask renderer (will not take ownership) %End + ~QgsHeatmapRendererWidget(); virtual QgsFeatureRenderer *renderer(); diff --git a/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in b/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in index f30f5c52b5d..d6255d2aee9 100644 --- a/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in +++ b/python/gui/auto_generated/symbology/qgsinvertedpolygonrendererwidget.sip.in @@ -38,6 +38,7 @@ Constructor :param style: :param renderer: the mask renderer (will not take ownership) %End + ~QgsInvertedPolygonRendererWidget(); virtual QgsFeatureRenderer *renderer(); diff --git a/python/gui/auto_generated/symbology/qgsmergedfeaturerendererwidget.sip.in b/python/gui/auto_generated/symbology/qgsmergedfeaturerendererwidget.sip.in index 1d79fa66363..25d24cdd26e 100644 --- a/python/gui/auto_generated/symbology/qgsmergedfeaturerendererwidget.sip.in +++ b/python/gui/auto_generated/symbology/qgsmergedfeaturerendererwidget.sip.in @@ -38,6 +38,7 @@ Constructor :param style: :param renderer: the merged feature renderer (will not take ownership) %End + ~QgsMergedFeatureRendererWidget(); virtual QgsFeatureRenderer *renderer(); diff --git a/src/gui/symbology/qgs25drendererwidget.cpp b/src/gui/symbology/qgs25drendererwidget.cpp index 969e444bb11..171dcf6c9b7 100644 --- a/src/gui/symbology/qgs25drendererwidget.cpp +++ b/src/gui/symbology/qgs25drendererwidget.cpp @@ -18,6 +18,7 @@ #include "qgsvectorlayer.h" #include "qgsmaplayerstylemanager.h" #include "qgsexpressioncontextutils.h" +#include "qgssymbol.h" Qgs25DRendererWidget::Qgs25DRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ) : QgsRendererWidget( layer, style ) @@ -54,7 +55,7 @@ Qgs25DRendererWidget::Qgs25DRendererWidget( QgsVectorLayer *layer, QgsStyle *sty if ( renderer ) { - mRenderer = Qgs25DRenderer::convertFromRenderer( renderer ); + mRenderer.reset( Qgs25DRenderer::convertFromRenderer( renderer ) ); } mHeightWidget->setLayer( layer ); @@ -85,9 +86,11 @@ Qgs25DRendererWidget::Qgs25DRendererWidget( QgsVectorLayer *layer, QgsStyle *sty connect( mWallExpositionShading, &QAbstractButton::toggled, this, &Qgs25DRendererWidget::updateRenderer ); } +Qgs25DRendererWidget::~Qgs25DRendererWidget() = default; + QgsFeatureRenderer *Qgs25DRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } void Qgs25DRendererWidget::updateRenderer() diff --git a/src/gui/symbology/qgs25drendererwidget.h b/src/gui/symbology/qgs25drendererwidget.h index 553f4a49e95..a50190ee725 100644 --- a/src/gui/symbology/qgs25drendererwidget.h +++ b/src/gui/symbology/qgs25drendererwidget.h @@ -48,6 +48,7 @@ class GUI_EXPORT Qgs25DRendererWidget : public QgsRendererWidget, protected Ui:: * \param renderer the mask renderer (will not take ownership) */ Qgs25DRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer SIP_TRANSFER ); + ~Qgs25DRendererWidget() override; QgsFeatureRenderer *renderer() override; @@ -57,7 +58,7 @@ class GUI_EXPORT Qgs25DRendererWidget : public QgsRendererWidget, protected Ui:: private: void apply() override SIP_FORCE; - Qgs25DRenderer *mRenderer = nullptr; + std::unique_ptr< Qgs25DRenderer > mRenderer; friend class QgsAppScreenShots; }; diff --git a/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp b/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp index ff00354f5f3..2f67639b409 100644 --- a/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp +++ b/src/gui/symbology/qgsembeddedsymbolrendererwidget.cpp @@ -79,6 +79,8 @@ QgsEmbeddedSymbolRendererWidget::QgsEmbeddedSymbolRendererWidget( QgsVectorLayer } ); } +QgsEmbeddedSymbolRendererWidget::~QgsEmbeddedSymbolRendererWidget() = default; + QgsFeatureRenderer *QgsEmbeddedSymbolRendererWidget::renderer() { return mRenderer.get(); diff --git a/src/gui/symbology/qgsembeddedsymbolrendererwidget.h b/src/gui/symbology/qgsembeddedsymbolrendererwidget.h index 9592108d38d..72348f0ded0 100644 --- a/src/gui/symbology/qgsembeddedsymbolrendererwidget.h +++ b/src/gui/symbology/qgsembeddedsymbolrendererwidget.h @@ -17,11 +17,11 @@ #include "ui_qgsembeddedsymbolrendererwidgetbase.h" #include "qgis_sip.h" -#include "qgsembeddedsymbolrenderer.h" #include "qgsrendererwidget.h" #include "qgis_gui.h" class QMenu; +class QgsEmbeddedSymbolRenderer; /** * \ingroup gui @@ -50,6 +50,7 @@ class GUI_EXPORT QgsEmbeddedSymbolRendererWidget : public QgsRendererWidget, pub * \param renderer the merged feature renderer (will not take ownership) */ QgsEmbeddedSymbolRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ); + ~QgsEmbeddedSymbolRendererWidget() override; QgsFeatureRenderer *renderer() override; void setContext( const QgsSymbolWidgetContext &context ) override; diff --git a/src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp b/src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp index 418ca512645..835c8b9d4a6 100644 --- a/src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp +++ b/src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp @@ -464,7 +464,7 @@ QgsGraduatedSymbolRendererWidget::QgsGraduatedSymbolRendererWidget( QgsVectorLay // setup user interface setupUi( this ); - mSymmetryPointValidator = new QDoubleValidator(); + mSymmetryPointValidator = new QDoubleValidator( this ); cboSymmetryPoint->setEditable( true ); cboSymmetryPoint->setValidator( mSymmetryPointValidator ); diff --git a/src/gui/symbology/qgsgraduatedsymbolrendererwidget.h b/src/gui/symbology/qgsgraduatedsymbolrendererwidget.h index 21cd820775c..1df275f5362 100644 --- a/src/gui/symbology/qgsgraduatedsymbolrendererwidget.h +++ b/src/gui/symbology/qgsgraduatedsymbolrendererwidget.h @@ -196,7 +196,7 @@ class GUI_EXPORT QgsGraduatedSymbolRendererWidget : public QgsRendererWidget, pr QgsRangeList mCopyBuffer; - QDoubleValidator *mSymmetryPointValidator; + QDoubleValidator *mSymmetryPointValidator = nullptr; std::vector< std::unique_ptr< QgsAbstractProcessingParameterWidgetWrapper >> mParameterWidgetWrappers; }; diff --git a/src/gui/symbology/qgsheatmaprendererwidget.cpp b/src/gui/symbology/qgsheatmaprendererwidget.cpp index 17acb2fb845..c849c688d72 100644 --- a/src/gui/symbology/qgsheatmaprendererwidget.cpp +++ b/src/gui/symbology/qgsheatmaprendererwidget.cpp @@ -105,11 +105,11 @@ QgsHeatmapRendererWidget::QgsHeatmapRendererWidget( QgsVectorLayer *layer, QgsSt if ( renderer ) { - mRenderer = QgsHeatmapRenderer::convertFromRenderer( renderer ); + mRenderer.reset( QgsHeatmapRenderer::convertFromRenderer( renderer ) ); } if ( !mRenderer ) { - mRenderer = new QgsHeatmapRenderer(); + mRenderer = std::make_unique< QgsHeatmapRenderer >(); } btnColorRamp->setShowGradientOnly( true ); @@ -141,9 +141,11 @@ QgsHeatmapRendererWidget::QgsHeatmapRendererWidget( QgsVectorLayer *layer, QgsSt connect( mWeightExpressionWidget, static_cast < void ( QgsFieldExpressionWidget::* )( const QString & ) >( &QgsFieldExpressionWidget::fieldChanged ), this, &QgsHeatmapRendererWidget::weightExpressionChanged ); } +QgsHeatmapRendererWidget::~QgsHeatmapRendererWidget() = default; + QgsFeatureRenderer *QgsHeatmapRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } void QgsHeatmapRendererWidget::setContext( const QgsSymbolWidgetContext &context ) diff --git a/src/gui/symbology/qgsheatmaprendererwidget.h b/src/gui/symbology/qgsheatmaprendererwidget.h index 519572d9878..1f068101209 100644 --- a/src/gui/symbology/qgsheatmaprendererwidget.h +++ b/src/gui/symbology/qgsheatmaprendererwidget.h @@ -48,12 +48,13 @@ class GUI_EXPORT QgsHeatmapRendererWidget : public QgsRendererWidget, private Ui * \param renderer the mask renderer (will not take ownership) */ QgsHeatmapRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ); + ~QgsHeatmapRendererWidget() override; QgsFeatureRenderer *renderer() override; void setContext( const QgsSymbolWidgetContext &context ) override; private: - QgsHeatmapRenderer *mRenderer = nullptr; + std::unique_ptr< QgsHeatmapRenderer > mRenderer; QgsExpressionContext createExpressionContext() const override; diff --git a/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp b/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp index 76ecc24bbc1..d1f681c19f5 100644 --- a/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp +++ b/src/gui/symbology/qgsinvertedpolygonrendererwidget.cpp @@ -100,6 +100,8 @@ QgsInvertedPolygonRendererWidget::QgsInvertedPolygonRendererWidget( QgsVectorLay } } +QgsInvertedPolygonRendererWidget::~QgsInvertedPolygonRendererWidget() = default; + QgsFeatureRenderer *QgsInvertedPolygonRendererWidget::renderer() { if ( mRenderer && mEmbeddedRendererWidget ) diff --git a/src/gui/symbology/qgsinvertedpolygonrendererwidget.h b/src/gui/symbology/qgsinvertedpolygonrendererwidget.h index 0e71b6058f3..41abc1dbc02 100644 --- a/src/gui/symbology/qgsinvertedpolygonrendererwidget.h +++ b/src/gui/symbology/qgsinvertedpolygonrendererwidget.h @@ -17,11 +17,11 @@ #include "ui_qgsinvertedpolygonrendererwidgetbase.h" #include "qgis_sip.h" -#include "qgsinvertedpolygonrenderer.h" #include "qgsrendererwidget.h" #include "qgis_gui.h" class QMenu; +class QgsInvertedPolygonRenderer; /** * \ingroup gui @@ -50,6 +50,7 @@ class GUI_EXPORT QgsInvertedPolygonRendererWidget : public QgsRendererWidget, pr * \param renderer the mask renderer (will not take ownership) */ QgsInvertedPolygonRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ); + ~QgsInvertedPolygonRendererWidget() override; QgsFeatureRenderer *renderer() override; diff --git a/src/gui/symbology/qgsmergedfeaturerendererwidget.cpp b/src/gui/symbology/qgsmergedfeaturerendererwidget.cpp index 043da091d5b..5a3cb4f8d59 100644 --- a/src/gui/symbology/qgsmergedfeaturerendererwidget.cpp +++ b/src/gui/symbology/qgsmergedfeaturerendererwidget.cpp @@ -97,6 +97,8 @@ QgsMergedFeatureRendererWidget::QgsMergedFeatureRendererWidget( QgsVectorLayer * } } +QgsMergedFeatureRendererWidget::~QgsMergedFeatureRendererWidget() = default; + QgsFeatureRenderer *QgsMergedFeatureRendererWidget::renderer() { if ( mRenderer && mEmbeddedRendererWidget ) diff --git a/src/gui/symbology/qgsmergedfeaturerendererwidget.h b/src/gui/symbology/qgsmergedfeaturerendererwidget.h index a79c4013999..b14abb2a34d 100644 --- a/src/gui/symbology/qgsmergedfeaturerendererwidget.h +++ b/src/gui/symbology/qgsmergedfeaturerendererwidget.h @@ -17,11 +17,11 @@ #include "ui_qgsmergedfeaturerendererwidgetbase.h" #include "qgis_sip.h" -#include "qgsmergedfeaturerenderer.h" #include "qgsrendererwidget.h" #include "qgis_gui.h" class QMenu; +class QgsMergedFeatureRenderer; /** * \ingroup gui @@ -50,6 +50,7 @@ class GUI_EXPORT QgsMergedFeatureRendererWidget : public QgsRendererWidget, priv * \param renderer the merged feature renderer (will not take ownership) */ QgsMergedFeatureRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ); + ~QgsMergedFeatureRendererWidget() override; QgsFeatureRenderer *renderer() override; void setContext( const QgsSymbolWidgetContext &context ) override; diff --git a/src/gui/symbology/qgsnullsymbolrendererwidget.cpp b/src/gui/symbology/qgsnullsymbolrendererwidget.cpp index 494df613a03..d9ca3aa4bab 100644 --- a/src/gui/symbology/qgsnullsymbolrendererwidget.cpp +++ b/src/gui/symbology/qgsnullsymbolrendererwidget.cpp @@ -26,15 +26,14 @@ QgsRendererWidget *QgsNullSymbolRendererWidget::create( QgsVectorLayer *layer, Q QgsNullSymbolRendererWidget::QgsNullSymbolRendererWidget( QgsVectorLayer *layer, QgsStyle *style, QgsFeatureRenderer *renderer ) : QgsRendererWidget( layer, style ) - { if ( renderer ) { - mRenderer = QgsNullSymbolRenderer::convertFromRenderer( renderer ); + mRenderer.reset( QgsNullSymbolRenderer::convertFromRenderer( renderer ) ); } if ( !mRenderer ) { - mRenderer = new QgsNullSymbolRenderer(); + mRenderer = std::make_unique< QgsNullSymbolRenderer >(); } QGridLayout *layout = new QGridLayout( this ); @@ -42,12 +41,9 @@ QgsNullSymbolRendererWidget::QgsNullSymbolRendererWidget( QgsVectorLayer *layer, layout->addWidget( label ); } -QgsNullSymbolRendererWidget::~QgsNullSymbolRendererWidget() -{ - delete mRenderer; -} +QgsNullSymbolRendererWidget::~QgsNullSymbolRendererWidget() = default; QgsFeatureRenderer *QgsNullSymbolRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } diff --git a/src/gui/symbology/qgsnullsymbolrendererwidget.h b/src/gui/symbology/qgsnullsymbolrendererwidget.h index d23e7f2052d..806151e449b 100644 --- a/src/gui/symbology/qgsnullsymbolrendererwidget.h +++ b/src/gui/symbology/qgsnullsymbolrendererwidget.h @@ -49,7 +49,7 @@ class GUI_EXPORT QgsNullSymbolRendererWidget : public QgsRendererWidget protected: //! Renderer being configured by the widget - QgsNullSymbolRenderer *mRenderer = nullptr; + std::unique_ptr< QgsNullSymbolRenderer > mRenderer; }; diff --git a/src/gui/symbology/qgspointclusterrendererwidget.cpp b/src/gui/symbology/qgspointclusterrendererwidget.cpp index b84f033da76..d747f993dad 100644 --- a/src/gui/symbology/qgspointclusterrendererwidget.cpp +++ b/src/gui/symbology/qgspointclusterrendererwidget.cpp @@ -63,11 +63,11 @@ QgsPointClusterRendererWidget::QgsPointClusterRendererWidget( QgsVectorLayer *la if ( renderer ) { - mRenderer = QgsPointClusterRenderer::convertFromRenderer( renderer ); + mRenderer.reset( QgsPointClusterRenderer::convertFromRenderer( renderer ) ); } if ( !mRenderer ) { - mRenderer = new QgsPointClusterRenderer(); + mRenderer = std::make_unique< QgsPointClusterRenderer >(); } blockAllSignals( true ); @@ -109,14 +109,11 @@ QgsPointClusterRendererWidget::QgsPointClusterRendererWidget( QgsVectorLayer *la mCenterSymbolToolButton->registerExpressionContextGenerator( this ); } -QgsPointClusterRendererWidget::~QgsPointClusterRendererWidget() -{ - delete mRenderer; -} +QgsPointClusterRendererWidget::~QgsPointClusterRendererWidget() = default; QgsFeatureRenderer *QgsPointClusterRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } void QgsPointClusterRendererWidget::setContext( const QgsSymbolWidgetContext &context ) diff --git a/src/gui/symbology/qgspointclusterrendererwidget.h b/src/gui/symbology/qgspointclusterrendererwidget.h index 5cc01387b82..7660ce196b1 100644 --- a/src/gui/symbology/qgspointclusterrendererwidget.h +++ b/src/gui/symbology/qgspointclusterrendererwidget.h @@ -64,7 +64,7 @@ class GUI_EXPORT QgsPointClusterRendererWidget: public QgsRendererWidget, public QgsExpressionContext createExpressionContext() const override; private: - QgsPointClusterRenderer *mRenderer = nullptr; + std::unique_ptr< QgsPointClusterRenderer > mRenderer; void blockAllSignals( bool block ); void setupBlankUi( const QString &layerName ); diff --git a/src/gui/symbology/qgspointdisplacementrendererwidget.cpp b/src/gui/symbology/qgspointdisplacementrendererwidget.cpp index 44f5375a736..d8e62b414fa 100644 --- a/src/gui/symbology/qgspointdisplacementrendererwidget.cpp +++ b/src/gui/symbology/qgspointdisplacementrendererwidget.cpp @@ -71,11 +71,11 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto if ( renderer ) { - mRenderer = QgsPointDisplacementRenderer::convertFromRenderer( renderer ); + mRenderer.reset( QgsPointDisplacementRenderer::convertFromRenderer( renderer ) ); } if ( !mRenderer ) { - mRenderer = new QgsPointDisplacementRenderer(); + mRenderer = std::make_unique< QgsPointDisplacementRenderer >(); } blockAllSignals( true ); @@ -176,14 +176,11 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto mCenterSymbolToolButton->registerExpressionContextGenerator( this ); } -QgsPointDisplacementRendererWidget::~QgsPointDisplacementRendererWidget() -{ - delete mRenderer; -} +QgsPointDisplacementRendererWidget::~QgsPointDisplacementRendererWidget() = default; QgsFeatureRenderer *QgsPointDisplacementRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } void QgsPointDisplacementRendererWidget::setContext( const QgsSymbolWidgetContext &context ) diff --git a/src/gui/symbology/qgspointdisplacementrendererwidget.h b/src/gui/symbology/qgspointdisplacementrendererwidget.h index d4d15270e70..60436aebfa5 100644 --- a/src/gui/symbology/qgspointdisplacementrendererwidget.h +++ b/src/gui/symbology/qgspointdisplacementrendererwidget.h @@ -44,7 +44,7 @@ class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, p QgsExpressionContext createExpressionContext() const override; private: - QgsPointDisplacementRenderer *mRenderer = nullptr; + std::unique_ptr< QgsPointDisplacementRenderer > mRenderer; void blockAllSignals( bool block ); void setupBlankUi( const QString &layerName ); diff --git a/src/gui/symbology/qgsrulebasedrendererwidget.cpp b/src/gui/symbology/qgsrulebasedrendererwidget.cpp index 0d340a0616d..9d4d4eef354 100644 --- a/src/gui/symbology/qgsrulebasedrendererwidget.cpp +++ b/src/gui/symbology/qgsrulebasedrendererwidget.cpp @@ -61,20 +61,20 @@ QgsRuleBasedRendererWidget::QgsRuleBasedRendererWidget( QgsVectorLayer *layer, Q if ( renderer ) { - mRenderer = QgsRuleBasedRenderer::convertFromRenderer( renderer, layer ); + mRenderer.reset( QgsRuleBasedRenderer::convertFromRenderer( renderer, layer ) ); } if ( !mRenderer ) { // some default options QgsSymbol *symbol = QgsSymbol::defaultSymbol( mLayer->geometryType() ); - mRenderer = new QgsRuleBasedRenderer( symbol ); + mRenderer = std::make_unique< QgsRuleBasedRenderer >( symbol ); } setupUi( this ); this->layout()->setContentsMargins( 0, 0, 0, 0 ); - mModel = new QgsRuleBasedRendererModel( mRenderer, viewRules ); + mModel = new QgsRuleBasedRendererModel( mRenderer.get(), viewRules ); #ifdef ENABLE_MODELTEST new ModelTest( mModel, this ); // for model validity checking #endif @@ -135,12 +135,11 @@ QgsRuleBasedRendererWidget::QgsRuleBasedRendererWidget( QgsVectorLayer *layer, Q QgsRuleBasedRendererWidget::~QgsRuleBasedRendererWidget() { qDeleteAll( mCopyBuffer ); - delete mRenderer; } QgsFeatureRenderer *QgsRuleBasedRendererWidget::renderer() { - return mRenderer; + return mRenderer.get(); } void QgsRuleBasedRendererWidget::setDockMode( bool dockMode ) @@ -452,7 +451,7 @@ void QgsRuleBasedRendererWidget::setRenderingOrder() QgsPanelWidget *panel = QgsPanelWidget::findParentPanel( this ); if ( panel && panel->dockMode() ) { - QgsSymbolLevelsWidget *widget = new QgsSymbolLevelsWidget( mRenderer, true, panel ); + QgsSymbolLevelsWidget *widget = new QgsSymbolLevelsWidget( mRenderer.get(), true, panel ); widget->setForceOrderingEnabled( true ); widget->setPanelTitle( tr( "Symbol Levels" ) ); connect( widget, &QgsPanelWidget::widgetChanged, this, [ = ]() @@ -463,7 +462,7 @@ void QgsRuleBasedRendererWidget::setRenderingOrder() } else { - QgsSymbolLevelsDialog dlg( mRenderer, true, panel ); + QgsSymbolLevelsDialog dlg( mRenderer.get(), true, panel ); dlg.setForceOrderingEnabled( true ); if ( dlg.exec() ) { diff --git a/src/gui/symbology/qgsrulebasedrendererwidget.h b/src/gui/symbology/qgsrulebasedrendererwidget.h index 937b971af0f..18713bf7bed 100644 --- a/src/gui/symbology/qgsrulebasedrendererwidget.h +++ b/src/gui/symbology/qgsrulebasedrendererwidget.h @@ -166,7 +166,7 @@ class GUI_EXPORT QgsRuleBasedRendererWidget : public QgsRendererWidget, private void refreshSymbolView() override; void keyPressEvent( QKeyEvent *event ) override; - QgsRuleBasedRenderer *mRenderer = nullptr; + std::unique_ptr< QgsRuleBasedRenderer > mRenderer; QgsRuleBasedRendererModel *mModel = nullptr; QMenu *mRefineMenu = nullptr;