Moved mixer board update code out of class AudacityProject...

... And we don't need GetMixerBoard() any more
This commit is contained in:
Paul Licameli 2018-02-17 17:33:35 -05:00
parent 723cecbeac
commit 012ea76132
4 changed files with 22 additions and 21 deletions

View File

@ -937,7 +937,8 @@ MixerBoard::MixerBoard(AudacityProject* pProject,
void MixerBoard::UpdatePrefs()
{
mProject->RecreateMixerBoard();
// Destroys this:
static_cast<MixerBoardFrame*>(GetParent())->Recreate( mProject );
// Old approach modified things in situ.
// However with a theme change there is so much to modify, it is easier
@ -1450,4 +1451,22 @@ void MixerBoardFrame::OnKeyEvent(wxKeyEvent & event)
project->GetCommandManager()->FilterKeyEvent(project, event, true);
}
void MixerBoardFrame::Recreate( AudacityProject *pProject )
{
wxPoint pos = mMixerBoard->GetPosition();
wxSize siz = mMixerBoard->GetSize();
wxSize siz2 = this->GetSize();
//wxLogDebug("Got rid of board %p", mMixerBoard );
mMixerBoard->Destroy();
mMixerBoard = NULL;
mMixerBoard = safenew MixerBoard(pProject, this, pos, siz);
//wxLogDebug("Created NEW board %p", mMixerBoard );
mMixerBoard->UpdateTrackClusters();
mMixerBoard->SetSize( siz );
this->SetSize( siz2 );
}

View File

@ -266,6 +266,8 @@ public:
MixerBoardFrame(AudacityProject* parent);
virtual ~MixerBoardFrame();
void Recreate(AudacityProject *pProject);
private:
// event handlers
void OnCloseWindow(wxCloseEvent &WXUNUSED(event));

View File

@ -4713,24 +4713,6 @@ void AudacityProject::SetStateTo(unsigned int n)
GetMenuManager(*this).ModifyUndoMenuItems(*this);
}
void AudacityProject::RecreateMixerBoard( )
{
wxASSERT( mMixerBoard );
wxASSERT( mMixerBoardFrame );
wxPoint pos = mMixerBoard->GetPosition();
wxSize siz = mMixerBoard->GetSize();
wxSize siz2 = mMixerBoardFrame->GetSize();
//wxLogDebug("Got rid of board %p", mMixerBoard );
mMixerBoard->Destroy();
mMixerBoard = NULL;
mMixerBoard = safenew MixerBoard(this, mMixerBoardFrame, pos, siz);
mMixerBoardFrame->mMixerBoard = mMixerBoard;
//wxLogDebug("Created NEW board %p", mMixerBoard );
mMixerBoard->UpdateTrackClusters();
mMixerBoard->SetSize( siz );
mMixerBoardFrame->SetSize( siz2 );
}
//
// Clipboard methods
//

View File

@ -531,7 +531,6 @@ public:
LyricsWindow* GetLyricsWindow(bool create = false);
MixerBoardFrame* GetMixerBoardFrame(bool create = false);
MixerBoard* GetMixerBoard() { return mMixerBoard; }
HistoryWindow *GetHistoryWindow(bool create = false);
MacrosWindow *GetMacrosWindow(bool bExpanded, bool create = false);
FreqWindow *GetFreqWindow(bool create = false);
@ -601,7 +600,6 @@ public:
public:
void ModifyState(bool bWantsAutoSave); // if true, writes auto-save file. Should set only if you really want the state change restored after
// a crash, as it can take many seconds for large (eg. 10 track-hours) projects
void RecreateMixerBoard();
void PopState(const UndoState &state);