1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-27 15:53:49 +01:00

Remove uses of GetActiveProject in some dialogs

This commit is contained in:
Paul Licameli
2020-01-04 13:52:24 -05:00
parent f924df16f8
commit f0b75832b4
8 changed files with 38 additions and 25 deletions

View File

@@ -213,10 +213,6 @@ FrequencyPlotDialog::FrequencyPlotDialog(wxWindow * parent, wxWindowID id,
mRate = 0; mRate = 0;
mDataLen = 0; mDataLen = 0;
p = GetActiveProject();
if (!p)
return;
TranslatableStrings algChoices{ TranslatableStrings algChoices{
XO("Spectrum") , XO("Spectrum") ,
XO("Standard Autocorrelation") , XO("Standard Autocorrelation") ,

View File

@@ -95,6 +95,7 @@ BEGIN_EVENT_TABLE(LabelDialog, wxDialogWrapper)
END_EVENT_TABLE() END_EVENT_TABLE()
LabelDialog::LabelDialog(wxWindow *parent, LabelDialog::LabelDialog(wxWindow *parent,
AudacityProject &project,
TrackFactory &factory, TrackFactory &factory,
TrackList *tracks, TrackList *tracks,
LabelTrack *selectedTrack, LabelTrack *selectedTrack,
@@ -108,9 +109,10 @@ LabelDialog::LabelDialog(wxWindow *parent,
XO("Edit Labels"), XO("Edit Labels"),
wxDefaultPosition, wxDefaultPosition,
wxSize(800, 600), wxSize(800, 600),
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
mFactory(factory), , mProject{ project }
mTracks(tracks) , mFactory(factory)
, mTracks(tracks)
, mSelectedTrack(selectedTrack) , mSelectedTrack(selectedTrack)
, mIndex(index) , mIndex(index)
, mViewInfo(&viewinfo), , mViewInfo(&viewinfo),
@@ -748,7 +750,7 @@ void LabelDialog::OnSelectCell(wxGridEvent &event)
RowData &rd = mData[event.GetRow()]; RowData &rd = mData[event.GetRow()];
mViewInfo->selectedRegion = rd.selectedRegion; mViewInfo->selectedRegion = rd.selectedRegion;
ProjectWindow::Get( *GetActiveProject() ).RedrawProject(); ProjectWindow::Get( mProject ).RedrawProject();
} }
event.Skip(); event.Skip();

View File

@@ -19,6 +19,7 @@
class wxArrayString; class wxArrayString;
class wxGridEvent; class wxGridEvent;
class AudacityProject;
class ChoiceEditor; class ChoiceEditor;
class Grid; class Grid;
class NumericEditor; class NumericEditor;
@@ -37,6 +38,7 @@ class LabelDialog final : public wxDialogWrapper
public: public:
LabelDialog(wxWindow *parent, LabelDialog(wxWindow *parent,
AudacityProject &project,
TrackFactory &factory, TrackFactory &factory,
TrackList *tracks, TrackList *tracks,
@@ -93,6 +95,8 @@ class LabelDialog final : public wxDialogWrapper
private: private:
AudacityProject &mProject;
Grid *mGrid; Grid *mGrid;
ChoiceEditor *mChoiceEditor; ChoiceEditor *mChoiceEditor;
NumericEditor *mTimeEditor; NumericEditor *mTimeEditor;

View File

@@ -58,7 +58,8 @@ class ScreenshotBigDialog final : public wxFrame
{ {
public: public:
// constructors and destructors // constructors and destructors
ScreenshotBigDialog(wxWindow *parent, wxWindowID id); ScreenshotBigDialog(
wxWindow *parent, wxWindowID id, AudacityProject &project);
virtual ~ScreenshotBigDialog(); virtual ~ScreenshotBigDialog();
bool ProcessEvent(wxEvent & event) override; bool ProcessEvent(wxEvent & event) override;
@@ -95,6 +96,8 @@ class ScreenshotBigDialog final : public wxFrame
void OnMedTracks(wxCommandEvent & event); void OnMedTracks(wxCommandEvent & event);
void OnTallTracks(wxCommandEvent & event); void OnTallTracks(wxCommandEvent & event);
AudacityProject &mProject;
std::unique_ptr<ScreenshotCommand> CreateCommand(); std::unique_ptr<ScreenshotCommand> CreateCommand();
wxCheckBox *mDelayCheckBox; wxCheckBox *mDelayCheckBox;
@@ -118,7 +121,7 @@ ScreenshotBigDialogPtr mFrame;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
void OpenScreenshotTools() void OpenScreenshotTools( AudacityProject &project )
{ {
if (!mFrame) { if (!mFrame) {
auto parent = wxTheApp->GetTopWindow(); auto parent = wxTheApp->GetTopWindow();
@@ -126,7 +129,8 @@ void OpenScreenshotTools()
wxASSERT(false); wxASSERT(false);
return; return;
} }
mFrame = ScreenshotBigDialogPtr{ safenew ScreenshotBigDialog(parent, -1) }; mFrame = ScreenshotBigDialogPtr{
safenew ScreenshotBigDialog(parent, -1, project) };
} }
mFrame->Show(); mFrame->Show();
mFrame->Raise(); mFrame->Raise();
@@ -263,7 +267,8 @@ std::unique_ptr<ScreenshotCommand> ScreenshotBigDialog::CreateCommand()
return std::make_unique<ScreenshotCommand>();//*type, std::move(output), this); return std::make_unique<ScreenshotCommand>();//*type, std::move(output), this);
} }
ScreenshotBigDialog::ScreenshotBigDialog(wxWindow * parent, wxWindowID id) ScreenshotBigDialog::ScreenshotBigDialog(
wxWindow * parent, wxWindowID id, AudacityProject &project)
: wxFrame(parent, id, _("Screen Capture Frame"), : wxFrame(parent, id, _("Screen Capture Frame"),
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
@@ -279,8 +284,9 @@ ScreenshotBigDialog::ScreenshotBigDialog(wxWindow * parent, wxWindowID id)
#endif #endif
wxSYSTEM_MENU|wxCAPTION|wxCLOSE_BOX), wxSYSTEM_MENU|wxCAPTION|wxCLOSE_BOX)
mContext( *GetActiveProject() ) , mProject{ project }
, mContext( project )
{ {
mDelayCheckBox = NULL; mDelayCheckBox = NULL;
mDirectoryTextBox = NULL; mDirectoryTextBox = NULL;
@@ -530,7 +536,7 @@ void ScreenshotBigDialog::OnGetURL(wxCommandEvent & WXUNUSED(event))
void ScreenshotBigDialog::OnUIUpdate(wxUpdateUIEvent & WXUNUSED(event)) void ScreenshotBigDialog::OnUIUpdate(wxUpdateUIEvent & WXUNUSED(event))
{ {
#ifdef __WXMAC__ #ifdef __WXMAC__
wxTopLevelWindow *top = mCommand->GetFrontWindow(GetActiveProject()); wxTopLevelWindow *top = mCommand->GetFrontWindow(&mProject);
bool needupdate = false; bool needupdate = false;
bool enable = false; bool enable = false;

View File

@@ -23,7 +23,9 @@
#include <wx/defs.h> #include <wx/defs.h>
void OpenScreenshotTools(); class AudacityProject;
void OpenScreenshotTools( AudacityProject &project );
void CloseScreenshotTools(); void CloseScreenshotTools();
#endif // __AUDACITY_SCREENSHOT__ #endif // __AUDACITY_SCREENSHOT__

View File

@@ -88,7 +88,7 @@ void ShowDiagnostics(
class QuickFixDialog : public wxDialogWrapper class QuickFixDialog : public wxDialogWrapper
{ {
public: public:
QuickFixDialog(wxWindow * pParent); QuickFixDialog(wxWindow * pParent, AudacityProject &project);
void Populate(); void Populate();
void PopulateOrExchange(ShuttleGui & S); void PopulateOrExchange(ShuttleGui & S);
void AddStuck( ShuttleGui & S, bool & bBool, wxString Pref, void AddStuck( ShuttleGui & S, bool & bBool, wxString Pref,
@@ -101,6 +101,8 @@ public:
wxString StringFromEvent( wxCommandEvent &event ); wxString StringFromEvent( wxCommandEvent &event );
AudacityProject &mProject;
int mItem; int mItem;
bool mbSyncLocked; bool mbSyncLocked;
bool mbInSnapTo; bool mbInSnapTo;
@@ -120,10 +122,11 @@ BEGIN_EVENT_TABLE(QuickFixDialog, wxDialogWrapper)
EVT_COMMAND_RANGE(HelpButtonID, FakeButtonID-1, wxEVT_BUTTON, QuickFixDialog::OnHelp) EVT_COMMAND_RANGE(HelpButtonID, FakeButtonID-1, wxEVT_BUTTON, QuickFixDialog::OnHelp)
END_EVENT_TABLE(); END_EVENT_TABLE();
QuickFixDialog::QuickFixDialog(wxWindow * pParent) : QuickFixDialog::QuickFixDialog(wxWindow * pParent, AudacityProject &project) :
wxDialogWrapper(pParent, wxID_ANY, XO("Do you have these problems?"), wxDialogWrapper(pParent, wxID_ANY, XO("Do you have these problems?"),
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
wxDEFAULT_DIALOG_STYLE ) wxDEFAULT_DIALOG_STYLE )
, mProject{ project }
{ {
const long SNAP_OFF = 0; const long SNAP_OFF = 0;
@@ -255,19 +258,19 @@ void QuickFixDialog::OnFix(wxCommandEvent &event)
gPrefs->Write( Str, 0); gPrefs->Write( Str, 0);
gPrefs->Flush(); gPrefs->Flush();
if ( auto pProject = GetActiveProject() ) { {
// Sadly SnapTo has to be handled specially, as it is not part of the standard // Sadly SnapTo has to be handled specially, as it is not part of the standard
// preference dialogs. // preference dialogs.
if( Str == "/SnapTo" ) if( Str == "/SnapTo" )
{ {
ProjectSelectionManager::Get( *pProject ).AS_SetSnapTo( 0 ); ProjectSelectionManager::Get( mProject ).AS_SetSnapTo( 0 );
} }
else else
{ {
// This is overkill (aka slow), as all preferences are reloaded and all // This is overkill (aka slow), as all preferences are reloaded and all
// toolbars recreated. // toolbars recreated.
// Overkill probably doesn't matter, as this command is infrequently used. // Overkill probably doesn't matter, as this command is infrequently used.
DoReloadPreferences( *pProject ); DoReloadPreferences( mProject );
} }
} }
@@ -295,7 +298,7 @@ struct Handler : CommandHandlerObject {
void OnQuickFix(const CommandContext &context) void OnQuickFix(const CommandContext &context)
{ {
auto &project = context.project; auto &project = context.project;
QuickFixDialog dlg( &GetProjectFrame( project ) ); QuickFixDialog dlg( &GetProjectFrame( project ), project );
dlg.ShowModal(); dlg.ShowModal();
} }

View File

@@ -503,9 +503,9 @@ void OnApplyMacrosPalette(const CommandContext &context )
} }
} }
void OnScreenshot(const CommandContext &WXUNUSED(context) ) void OnScreenshot(const CommandContext &context )
{ {
::OpenScreenshotTools(); ::OpenScreenshotTools( context.project );
} }
void OnBenchmark(const CommandContext &context) void OnBenchmark(const CommandContext &context)

View File

@@ -2049,7 +2049,7 @@ void LabelTrackView::DoEditLabels
auto &viewInfo = ViewInfo::Get( project ); auto &viewInfo = ViewInfo::Get( project );
auto &window = ProjectWindow::Get( project ); auto &window = ProjectWindow::Get( project );
LabelDialog dlg(&window, trackFactory, &tracks, LabelDialog dlg(&window, project, trackFactory, &tracks,
lt, index, lt, index,
viewInfo, rate, viewInfo, rate,
format, freqFormat); format, freqFormat);