diff --git a/src/core/EffectChain.cpp b/src/core/EffectChain.cpp index a1aea9d3a74..b47267e8fab 100644 --- a/src/core/EffectChain.cpp +++ b/src/core/EffectChain.cpp @@ -125,6 +125,8 @@ void EffectChain::appendEffect( Effect * _effect ) m_effects.append( _effect ); Engine::mixer()->doneChangeInModel(); + m_enabledModel.setValue( true ); + emit dataChanged(); } @@ -144,6 +146,12 @@ void EffectChain::removeEffect( Effect * _effect ) m_effects.erase( found ); Engine::mixer()->doneChangeInModel(); + + if( m_effects.isEmpty() ) + { + m_enabledModel.setValue( false ); + } + emit dataChanged(); } @@ -250,7 +258,6 @@ void EffectChain::clear() Engine::mixer()->requestChangeInModel(); - m_enabledModel.setValue( false ); while( m_effects.count() ) { Effect * e = m_effects[m_effects.count() - 1]; @@ -259,4 +266,6 @@ void EffectChain::clear() } Engine::mixer()->doneChangeInModel(); + + m_enabledModel.setValue( false ); } diff --git a/src/gui/widgets/EffectRackView.cpp b/src/gui/widgets/EffectRackView.cpp index 9f5647c949d..c1e36547e68 100644 --- a/src/gui/widgets/EffectRackView.cpp +++ b/src/gui/widgets/EffectRackView.cpp @@ -138,10 +138,6 @@ void EffectRackView::deletePlugin( EffectView* view ) Effect * e = view->effect(); m_effectViews.erase( qFind( m_effectViews.begin(), m_effectViews.end(), view ) ); delete view; - if( m_effectViews.size() == 0 ) - { - fxChain()->m_enabledModel.setValue( false ); - } fxChain()->removeEffect( e ); e->deleteLater(); update(); @@ -235,7 +231,6 @@ void EffectRackView::addEffect() Effect * fx = esd.instantiateSelectedPlugin( fxChain() ); - fxChain()->m_enabledModel.setValue( true ); fxChain()->appendEffect( fx ); update();