From eb14417f6cbdf5e55fbb39533227e41b69b13f20 Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Wed, 11 Apr 2018 17:49:20 +0300 Subject: [PATCH 1/5] Turn off the effects chain LED when its chain is empty --- src/gui/widgets/EffectRackView.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/widgets/EffectRackView.cpp b/src/gui/widgets/EffectRackView.cpp index b3f468d0eb3..9f5647c949d 100644 --- a/src/gui/widgets/EffectRackView.cpp +++ b/src/gui/widgets/EffectRackView.cpp @@ -138,6 +138,10 @@ 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(); From 2a03050dbf326ae5e33e5f4d034d47c3e23df42c Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Sun, 15 Apr 2018 13:53:22 +0300 Subject: [PATCH 2/5] Turn on the user controller LED when a controller is selected --- include/ControllerConnectionDialog.h | 1 + src/gui/ControllerConnectionDialog.cpp | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/ControllerConnectionDialog.h b/include/ControllerConnectionDialog.h index d3fa11cbc32..95e55ce79d8 100644 --- a/include/ControllerConnectionDialog.h +++ b/include/ControllerConnectionDialog.h @@ -66,6 +66,7 @@ public slots: void selectController(); void midiToggled(); void userToggled(); + void userSelected(); void autoDetectToggled(); void enableAutoDetect( QAction * _a ); diff --git a/src/gui/ControllerConnectionDialog.cpp b/src/gui/ControllerConnectionDialog.cpp index 1adf162e738..d48e19c9e97 100644 --- a/src/gui/ControllerConnectionDialog.cpp +++ b/src/gui/ControllerConnectionDialog.cpp @@ -188,13 +188,16 @@ ControllerConnectionDialog::ControllerConnectionDialog( QWidget * _parent, m_userController = new ComboBox( m_userGroupBox, "Controller" ); m_userController->setGeometry( 10, 24, 200, 22 ); - for( int i = 0; i < Engine::getSong()->controllers().size(); ++i ) { Controller * c = Engine::getSong()->controllers().at( i ); m_userController->model()->addItem( c->name() ); } - + connect( m_userController->model(), SIGNAL( dataUnchanged() ), + this, SLOT( userSelected() ) ); + connect( m_userController->model(), SIGNAL( dataChanged() ), + this, SLOT( userSelected() ) ); + // Mapping functions m_mappingBox = new TabWidget( tr( "MAPPING FUNCTION" ), this ); @@ -383,6 +386,15 @@ void ControllerConnectionDialog::midiToggled() +void ControllerConnectionDialog::userSelected() +{ + m_userGroupBox->model()->setValue( 1 ); + userToggled(); +} + + + + void ControllerConnectionDialog::userToggled() { int enabled = m_userGroupBox->model()->value(); @@ -390,8 +402,6 @@ void ControllerConnectionDialog::userToggled() { m_midiGroupBox->model()->setValue( 0 ); } - - m_userController->setEnabled( enabled ); } From d3e65cad0bc1aff9df7fa286172ed371f387c295 Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Tue, 17 Apr 2018 12:41:13 +0300 Subject: [PATCH 3/5] From EffectRackView to EffectChain --- src/core/EffectChain.cpp | 11 ++++++++++- src/gui/widgets/EffectRackView.cpp | 5 ----- 2 files changed, 10 insertions(+), 6 deletions(-) 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(); From af6c0e3bf203750358a8bf1cb46b31e17408ce8f Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Tue, 17 Apr 2018 12:42:56 +0300 Subject: [PATCH 4/5] Remove unused function: setEnabled() --- include/EffectChain.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/EffectChain.h b/include/EffectChain.h index fe6f2f92427..5397fe81ca1 100644 --- a/include/EffectChain.h +++ b/include/EffectChain.h @@ -57,11 +57,6 @@ class EXPORT EffectChain : public Model, public SerializingObject void clear(); - void setEnabled( bool _on ) - { - m_enabledModel.setValue( _on ); - } - private: typedef QVector EffectList; From f0002c04f7b737faf38d7a863e4ed5f5903d9ee7 Mon Sep 17 00:00:00 2001 From: Hussam Eddin Alhomsi Date: Thu, 19 Apr 2018 13:37:46 +0300 Subject: [PATCH 5/5] Fix --- src/gui/ControllerConnectionDialog.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/gui/ControllerConnectionDialog.cpp b/src/gui/ControllerConnectionDialog.cpp index fac27ab015d..02857b03465 100644 --- a/src/gui/ControllerConnectionDialog.cpp +++ b/src/gui/ControllerConnectionDialog.cpp @@ -385,15 +385,6 @@ void ControllerConnectionDialog::midiToggled() -void ControllerConnectionDialog::userSelected() -{ - m_userGroupBox->model()->setValue( 1 ); - userToggled(); -} - - - - void ControllerConnectionDialog::userToggled() { int enabled = m_userGroupBox->model()->value(); @@ -406,6 +397,15 @@ void ControllerConnectionDialog::userToggled() +void ControllerConnectionDialog::userSelected() +{ + m_userGroupBox->model()->setValue( 1 ); + userToggled(); +} + + + + void ControllerConnectionDialog::autoDetectToggled() { if( m_midiAutoDetect.value() )