1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-26 23:33:49 +01:00

Do the separation of classes ProjectWindow and AudacityProject

This commit is contained in:
Paul Licameli
2019-05-28 15:12:31 -04:00
parent 135af0480e
commit 4abc71c6b4
10 changed files with 466 additions and 372 deletions

View File

@@ -361,19 +361,13 @@ AudacityProject *ProjectManager::New()
// Create and show a NEW project
// Use a non-default deleter in the smart pointer!
auto sp = AllProjects::value_type {
safenew AudacityProject(
nullptr, -1,
wxDefaultPosition,
wxSize(wndRect.width, wndRect.height)
),
Destroyer< AudacityProject > {}
};
auto sp = std::make_shared< AudacityProject >();
AllProjects{}.Add( sp );
auto p = sp.get();
auto &project = *p;
auto &projectManager = Get( project );
auto &window = GetProjectFrame( *p );
auto &window = ProjectWindow::Get( *p );
window.Init();
MissingAliasFilesDialog::SetShouldShow(true);
MenuManager::Get( project ).CreateMenusAndCommands( project );
@@ -457,7 +451,7 @@ bool ProjectManager::SnapSelection()
{
auto &project = mProject;
auto &settings = ProjectSettings::Get( project );
auto &window = project;
auto &window = ProjectWindow::Get( project );
auto snapTo = settings.GetSnapTo();
if (snapTo != SNAP_OFF) {
auto &viewInfo = ViewInfo::Get( project );
@@ -514,7 +508,7 @@ void ProjectManager::AS_SetSnapTo(int snap)
{
auto &project = mProject;
auto &settings = ProjectSettings::Get( project );
auto &window = project;
auto &window = ProjectWindow::Get( project );
settings.SetSnapTo( snap );
@@ -657,7 +651,7 @@ void ProjectManager::OnCloseWindow(wxCloseEvent & event)
const auto &settings = ProjectSettings::Get( project );
auto &projectAudioIO = ProjectAudioIO::Get( project );
auto &tracks = TrackList::Get( project );
auto &window = project;
auto &window = ProjectWindow::Get( project );
// We are called for the wxEVT_CLOSE_WINDOW, wxEVT_END_SESSION, and
// wxEVT_QUERY_END_SESSION, so we have to protect against multiple
@@ -1980,7 +1974,7 @@ void ProjectManager::OnTimer(wxTimerEvent& WXUNUSED(event))
void ProjectManager::OnStatusChange( wxCommandEvent & )
{
auto &project = mProject;
auto &window = project;
auto &window = GetProjectFrame( project );
const auto &msg = project.GetStatus();
window.GetStatusBar()->SetStatusText(msg, mainStatusBarField);