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;
mDataLen = 0;
p = GetActiveProject();
if (!p)
return;
TranslatableStrings algChoices{
XO("Spectrum") ,
XO("Standard Autocorrelation") ,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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