diff --git a/src/BatchProcessDialog.cpp b/src/BatchProcessDialog.cpp index aa0053e30..5c4b21848 100644 --- a/src/BatchProcessDialog.cpp +++ b/src/BatchProcessDialog.cpp @@ -280,7 +280,7 @@ void BatchProcessDialog::OnApplyToFiles(wxCommandEvent & WXUNUSED(event)) } auto path = FileNames::FindDefaultPath(FileNames::Operation::Open); - FileDialog dlog(this, + FileDialogWrapper dlog(this, prompt, path, wxT(""), diff --git a/src/Project.cpp b/src/Project.cpp index b4898f54e..cabc7b15e 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -2815,7 +2815,7 @@ wxArrayString AudacityProject::ShowOpenDialog(const wxString &extraformat, const // Construct and display the file dialog wxArrayString selected; - FileDialog dlog(NULL, + FileDialogWrapper dlog(NULL, _("Select one or more files"), path, wxT(""), diff --git a/src/effects/Equalization.cpp b/src/effects/Equalization.cpp index 4441686f0..88c295355 100644 --- a/src/effects/Equalization.cpp +++ b/src/effects/Equalization.cpp @@ -3482,7 +3482,7 @@ void EditCurvesDialog::OnDelete(wxCommandEvent & WXUNUSED(event)) void EditCurvesDialog::OnImport( wxCommandEvent & WXUNUSED(event)) { - FileDialog filePicker(this, _("Choose an EQ curve file"), FileNames::DataDir(), wxT(""), _("xml files (*.xml;*.XML)|*.xml;*.XML")); + FileDialogWrapper filePicker(this, _("Choose an EQ curve file"), FileNames::DataDir(), wxT(""), _("xml files (*.xml;*.XML)|*.xml;*.XML")); wxString fileName = wxT(""); if( filePicker.ShowModal() == wxID_CANCEL) return; @@ -3502,7 +3502,7 @@ void EditCurvesDialog::OnImport( wxCommandEvent & WXUNUSED(event)) void EditCurvesDialog::OnExport( wxCommandEvent & WXUNUSED(event)) { - FileDialog filePicker(this, _("Export EQ curves as..."), FileNames::DataDir(), wxT(""), wxT("*.XML"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER); // wxFD_CHANGE_DIR? + FileDialogWrapper filePicker(this, _("Export EQ curves as..."), FileNames::DataDir(), wxT(""), wxT("*.XML"), wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER); // wxFD_CHANGE_DIR? wxString fileName = wxT(""); if( filePicker.ShowModal() == wxID_CANCEL) return; diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp index db03812e6..6bf6c18a3 100644 --- a/src/effects/nyquist/Nyquist.cpp +++ b/src/effects/nyquist/Nyquist.cpp @@ -2307,7 +2307,7 @@ void NyquistEffect::OnLoad(wxCommandEvent & WXUNUSED(evt)) } } - FileDialog dlog(mUIParent, + FileDialogWrapper dlog(mUIParent, _("Load Nyquist script"), mFileName.GetPath(), wxEmptyString, @@ -2329,7 +2329,7 @@ void NyquistEffect::OnLoad(wxCommandEvent & WXUNUSED(evt)) void NyquistEffect::OnSave(wxCommandEvent & WXUNUSED(evt)) { - FileDialog dlog(mUIParent, + FileDialogWrapper dlog(mUIParent, _("Save Nyquist script"), mFileName.GetPath(), mFileName.GetFullName(), diff --git a/src/export/Export.cpp b/src/export/Export.cpp index c0c4d6726..6c04865c8 100644 --- a/src/export/Export.cpp +++ b/src/export/Export.cpp @@ -537,7 +537,7 @@ bool Exporter::GetFilename() auto useFileName = mFilename; if (!useFileName.HasExt()) useFileName.SetExt(defext); - FileDialog fd(mProject, + FileDialogWrapper fd(mProject, mFileDialogTitle, mFilename.GetPath(), useFileName.GetFullName(), diff --git a/src/export/Export.h b/src/export/Export.h index d9fe8090c..c4c172168 100644 --- a/src/export/Export.h +++ b/src/export/Export.h @@ -21,7 +21,7 @@ #include "../SampleFormat.h" #include "../widgets/wxPanelWrapper.h" -class FileDialog; +class FileDialogWrapper; class wxFileCtrlEvent; class wxMemoryDC; class wxStaticText; @@ -187,7 +187,7 @@ private: private: wxString mFormatName; - FileDialog *mDialog; + FileDialogWrapper *mDialog; wxString mFileDialogTitle; AudacityProject *mProject; std::unique_ptr mMixerSpec; diff --git a/src/export/ExportFFmpegDialogs.cpp b/src/export/ExportFFmpegDialogs.cpp index 413648a60..55d2210cb 100644 --- a/src/export/ExportFFmpegDialogs.cpp +++ b/src/export/ExportFFmpegDialogs.cpp @@ -1856,7 +1856,7 @@ void ExportFFmpegOptions::OnLoadPreset(wxCommandEvent& WXUNUSED(event)) void ExportFFmpegOptions::OnImportPresets(wxCommandEvent& WXUNUSED(event)) { wxString path; - FileDialog dlg(this, + FileDialogWrapper dlg(this, _("Select xml file with presets to import"), gPrefs->Read(wxT("/FileFormats/FFmpegPresetDir")), wxEmptyString, @@ -1875,7 +1875,7 @@ void ExportFFmpegOptions::OnImportPresets(wxCommandEvent& WXUNUSED(event)) void ExportFFmpegOptions::OnExportPresets(wxCommandEvent& WXUNUSED(event)) { wxString path; - FileDialog dlg(this, + FileDialogWrapper dlg(this, _("Select xml file to export presets into"), gPrefs->Read(wxT("/FileFormats/FFmpegPresetDir")), wxEmptyString, diff --git a/src/widgets/wxPanelWrapper.h b/src/widgets/wxPanelWrapper.h index bf7961ad2..233fc2921 100644 --- a/src/widgets/wxPanelWrapper.h +++ b/src/widgets/wxPanelWrapper.h @@ -137,4 +137,45 @@ public: } }; +#include "../lib-src/FileDialog/FileDialog.h" + +class FileDialogWrapper : public wxTabTraversalWrapper +{ +public: + FileDialogWrapper() {} + + // Constructor with no modal flag - the new convention. + FileDialogWrapper( + wxWindow *parent, + const wxString& message = _("Select a file"), + const wxString& defaultDir = wxEmptyString, + const wxString& defaultFile = wxEmptyString, + const wxString& wildCard = wxFileSelectorDefaultWildcardStr, + long style = wxFD_DEFAULT_STYLE, + const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + // Important: default window name localizes! + const wxString& name = _("File Dialog")) + : wxTabTraversalWrapper + { parent, message, defaultDir, defaultFile, wildCard, style, pos, sz, name } + {} + + void Create( + wxWindow *parent, + const wxString& message = _("Select a file"), + const wxString& defaultDir = wxEmptyString, + const wxString& defaultFile = wxEmptyString, + const wxString& wildCard = wxFileSelectorDefaultWildcardStr, + long style = wxFD_DEFAULT_STYLE, + const wxPoint& pos = wxDefaultPosition, + const wxSize& sz = wxDefaultSize, + // Important: default window name localizes! + const wxString& name = _("File Dialog")) + { + return wxTabTraversalWrapper::Create( + parent, message, defaultDir, defaultFile, wildCard, style, pos, sz, name + ); + } +}; + #endif