1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-20 13:11:11 +01:00

MixerBoard listens to TrackList for selection changes

This commit is contained in:
Paul Licameli
2018-02-05 18:30:18 -05:00
parent 96d104cb38
commit 7150d43083
10 changed files with 61 additions and 95 deletions

View File

@@ -940,6 +940,10 @@ MixerBoard::MixerBoard(AudacityProject* pProject,
mProject->Bind(EVT_TRACK_PANEL_TIMER,
&MixerBoard::OnTimer,
this);
mProject->GetTracks()->Bind(EVT_TRACKLIST_SELECTION_CHANGE,
&MixerBoard::OnTrackChanged,
this);
}
@@ -1164,14 +1168,6 @@ bool MixerBoard::HasSolo()
return !(( mTracks->Any<PlayableTrack>() + &PlayableTrack::GetSolo ).empty());
}
void MixerBoard::RefreshTrackCluster(const PlayableTrack* pTrack, bool bEraseBackground /*= true*/)
{
MixerTrackCluster* pMixerTrackCluster;
this->FindMixerTrackCluster(pTrack, &pMixerTrackCluster);
if (pMixerTrackCluster)
pMixerTrackCluster->Refresh(bEraseBackground);
}
void MixerBoard::RefreshTrackClusters(bool bEraseBackground /*= true*/)
{
for (unsigned int i = 0; i < mMixerTrackClusters.size(); i++)
@@ -1473,6 +1469,19 @@ void MixerBoard::OnTimer(wxCommandEvent &event)
event.Skip();
}
void MixerBoard::OnTrackChanged(TrackListEvent &evt)
{
evt.Skip();
auto pTrack = evt.mpTrack.lock();
auto pPlayable = dynamic_cast<PlayableTrack*>( pTrack.get() );
if ( pPlayable ) {
MixerTrackCluster *pMixerTrackCluster;
FindMixerTrackCluster( pPlayable, &pMixerTrackCluster );
if ( pMixerTrackCluster )
pMixerTrackCluster->Refresh();
}
}
// class MixerBoardFrame