Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix effect preview picture not set when effect widget is opened in di…
…alog mode

Also fix a memory leak when opened in dialog mode

Fixes #33600

(cherry picked from commit 449bc4b)
  • Loading branch information
nyalldawson committed Jan 7, 2020
1 parent 3b4c336 commit 0f7cdac
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions src/gui/effects/qgseffectstackpropertieswidget.cpp
Expand Up @@ -470,22 +470,27 @@ void QgsEffectStackCompactWidget::showDialog()
return;

QgsEffectStack *clone = mStack->clone();
QgsEffectStackPropertiesWidget *widget = new QgsEffectStackPropertiesWidget( clone, nullptr );
if ( mPreviewPicture )
{
widget->setPreviewPicture( *mPreviewPicture );
}

QgsPanelWidget *panel = QgsPanelWidget::findParentPanel( qobject_cast< QWidget * >( parent() ) );
if ( panel && panel->dockMode() )
{
QgsEffectStackPropertiesWidget *widget = new QgsEffectStackPropertiesWidget( clone, nullptr );
if ( mPreviewPicture )
{
widget->setPreviewPicture( *mPreviewPicture );
}

connect( widget, &QgsPanelWidget::widgetChanged, this, &QgsEffectStackCompactWidget::updateEffectLive );
connect( widget, &QgsPanelWidget::panelAccepted, this, &QgsEffectStackCompactWidget::updateAcceptWidget );
panel->openPanel( widget );
}
else
{
QgsEffectStackPropertiesDialog dlg( clone, this );
if ( mPreviewPicture )
{
dlg.setPreviewPicture( *mPreviewPicture );
}

if ( dlg.exec() == QDialog::Accepted )
{
*mStack = *clone;
Expand Down

0 comments on commit 0f7cdac

Please sign in to comment.