Sequencer - Fixed track selection

Overrides / single inputs were not preventing each other from being
added anymore.
This commit is contained in:
Emmanuel BENOîT 2017-11-29 07:23:36 +01:00
parent 57c5b6569c
commit 9a15267749

View file

@ -1329,9 +1329,7 @@ void T_SyncViewImpl_::displayInputSelector( ) noexcept
// The list // The list
ImGui::BeginChild( "content" ); ImGui::BeginChild( "content" );
for ( auto const& n : names ) { for ( auto const& n : names ) {
const T_SyncTrackId id{ n , false }; const bool present{ sInputs.contains( n ) };
const bool present{ sTracks.contains( id ) };
assert( !present || sInputs.contains( n ) );
const bool overriden{ present && *sInputs.get( n ) }; const bool overriden{ present && *sInputs.get( n ) };
if ( overriden ) { if ( overriden ) {
@ -1341,6 +1339,7 @@ void T_SyncViewImpl_::displayInputSelector( ) noexcept
bool select{ present }; bool select{ present };
stringBuffer.clear( ) << n << '\0'; stringBuffer.clear( ) << n << '\0';
if ( Checkbox( stringBuffer.data( ) , &select ) ) { if ( Checkbox( stringBuffer.data( ) , &select ) ) {
const T_SyncTrackId id{ n , false };
if ( select ) { if ( select ) {
sTracks.add( id ); sTracks.add( id );
sInputs.add( n , false ); sInputs.add( n , false );
@ -1459,7 +1458,7 @@ bool T_SyncViewImpl_::areOverrideInputsDisplayed(
{ {
auto const& in{ ov.inputNames( ) }; auto const& in{ ov.inputNames( ) };
for ( auto i = 0u ; i < in.size( ) ; i ++ ) { for ( auto i = 0u ; i < in.size( ) ; i ++ ) {
if ( sTracks.contains( T_SyncTrackId{ in[ i ] , false } ) ) { if ( sInputs.contains( in[ i ] ) ) {
return true; return true;
} }
} }