From 36af43549ec89cc3ef4dd6e79e5d4e16eaa34113 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 5 Jul 2008 22:11:17 +0000 Subject: [PATCH] made removing effect-plugins thread-safe (closes #2010984) git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1273 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 3 +++ src/gui/widgets/effect_rack_view.cpp | 11 +++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85e9a139c..38df4658c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-07-05 Tobias Doerffel + * src/gui/widgets/effect_rack_view.cpp: + made removing effect-plugins thread-safe (closes #2010984) + * src/core/automation_pattern.cpp: save and restore automationPattern's name (closes #2011011) diff --git a/src/gui/widgets/effect_rack_view.cpp b/src/gui/widgets/effect_rack_view.cpp index a9f196092..5850f85f3 100644 --- a/src/gui/widgets/effect_rack_view.cpp +++ b/src/gui/widgets/effect_rack_view.cpp @@ -53,7 +53,7 @@ effectRackView::effectRackView( effectChain * _model, QWidget * _parent ) : m_scrollArea->setPalette( QApplication::palette( m_scrollArea ) ); m_scrollArea->move( 6, 22 ); - m_addButton = new QPushButton( m_effectsGroupBox/*, "Add Effect"*/ ); + m_addButton = new QPushButton( m_effectsGroupBox ); m_addButton->setText( tr( "Add" ) ); m_addButton->move( 75, 210 ); connect( m_addButton, SIGNAL( clicked( void ) ), @@ -138,10 +138,8 @@ void effectRackView::deletePlugin( effectView * _view ) m_effectViews.erase( qFind( m_effectViews.begin(), m_effectViews.end(), _view ) ); delete _view; - fxChain()->m_effects.erase( qFind( fxChain()->m_effects.begin(), - fxChain()->m_effects.end(), - e ) ); - delete e; + fxChain()->removeEffect( e ); + e->deleteLater(); update(); } @@ -175,7 +173,8 @@ void effectRackView::update( void ) connect( view, SIGNAL( moveDown( effectView * ) ), this, SLOT( moveDown( effectView * ) ) ); connect( view, SIGNAL( deletePlugin( effectView * ) ), - this, SLOT( deletePlugin( effectView * ) ) ); + this, SLOT( deletePlugin( effectView * ) ), + Qt::QueuedConnection ); view->show(); m_effectViews.append( view ); view_map[i] = TRUE;