Audacity 3.2.0
Functions | Variables
SelectFile.cpp File Reference
#include "SelectFile.h"
#include "FileNames.h"
#include "widgets/FileDialog/FileDialog.h"
#include "widgets/AudacityMessageBox.h"
Include dependency graph for SelectFile.cpp:

Go to the source code of this file.

Functions

FilePath SelectFile (FileNames::Operation op, const TranslatableString &message, const FilePath &default_path, const FilePath &default_filename, const FileExtension &default_extension, const FileTypes &fileTypes, int flags, wxWindow *parent)
 
char * VerifyFilename (const wxString &s, bool input)
 Protect against Unicode to multi-byte conversion failures on Windows. More...
 

Variables

static wxCharBuffer mFilename
 

Detailed Description


Audacity: A Digital Audio Editor

Paul Licameli split from FileNames.cpp

Definition in file SelectFile.cpp.

Function Documentation

◆ SelectFile()

FilePath SelectFile ( FileNames::Operation  op,
const TranslatableString message,
const FilePath default_path,
const FilePath default_filename,
const FileExtension default_extension,
const FileTypes fileTypes,
int  flags,
wxWindow *  parent 
)

Definition at line 17 of file SelectFile.cpp.

25{
26 return WithDefaultPath(op, default_path, [&](const FilePath &path) {
27 wxString filter;
28 if ( !default_extension.empty() )
29 filter = wxT("*.") + default_extension;
30 return FileSelector(
31 message.Translation(), path, default_filename, filter,
32 FormatWildcard( fileTypes ),
33 flags, parent, wxDefaultCoord, wxDefaultCoord);
34 });
35}
wxString FileSelector(const wxString &title, const wxString &defaultDir, const wxString &defaultFileName, const wxString &defaultExtension, const wxString &filter, int flags, wxWindow *parent, int x, int y)
Definition: FileDialog.cpp:61
wxString FilePath
Definition: Project.h:20
wxString Translation() const
FILES_API wxString FormatWildcard(const FileTypes &fileTypes)
FilePath WithDefaultPath(Operation op, const FilePath &defaultPath, F function)
Definition: FileNames.h:195

References FileSelector(), FileNames::FormatWildcard(), TranslatableString::Translation(), and FileNames::WithDefaultPath().

Referenced by AudioUnitEffect::ExportPresets(), Effect::ExportPresets(), VSTEffect::ExportPresets(), VST3Effect::ExportPresets(), AudioUnitEffect::ImportPresets(), Effect::ImportPresets(), VSTEffect::ImportPresets(), VST3Effect::ImportPresets(), TimerRecordDialog::OnAutoSavePathButton_Click(), ExportCLOptions::OnBrowse(), FindDialog::OnBrowse(), FindFFmpegDialog::OnBrowse(), KeyConfigPrefs::OnExport(), ContrastDialog::OnExport(), FrequencyPlotDialog::OnExport(), LabelDialog::OnExport(), FileActions::Handler::OnExportLabels(), FileActions::Handler::OnExportMIDI(), KeyConfigPrefs::OnImport(), LabelDialog::OnImport(), FileActions::Handler::OnImportLabels(), FileActions::Handler::OnImportMIDI(), TagsEditorDialog::OnLoad(), BenchmarkDialog::OnSave(), TagsEditorDialog::OnSave(), anonymous_namespace{LogWindow.cpp}::OnSave(), MacroCommands::ReadMacro(), ProjectFileManager::SaveAs(), ProjectFileManager::SaveCopy(), ShowDiagnostics(), VerifyFilename(), and MacroCommands::WriteMacro().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyFilename()

char * VerifyFilename ( const wxString &  s,
bool  input 
)

Protect against Unicode to multi-byte conversion failures on Windows.

Definition at line 45 of file SelectFile.cpp.

46{
47 static wxCharBuffer buf;
48 wxString name = s;
49
50 if (input) {
51 if ((char *) (const char *)name.mb_str() == NULL) {
52 name = wxEmptyString;
53 }
54 }
55 else {
56 wxFileName ff(name);
57 FileExtension ext;
58 while ((char *) (const char *)name.mb_str() == NULL) {
60 XO(
61"The specified filename could not be converted due to Unicode character use."));
62
63 ext = ff.GetExt();
64 name = SelectFile(FileNames::Operation::_None,
65 XO("Specify New Filename:"),
66 wxEmptyString,
67 name,
68 ext,
69 { ext.empty()
71 : FileNames::FileType{ {}, { ext } }
72 },
73 wxFD_SAVE | wxRESIZE_BORDER,
74 wxGetTopLevelParent(NULL));
75 }
76 }
77
78 mFilename = name.mb_str();
79
80 return (char *) (const char *) mFilename;
81}
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
const TranslatableString name
Definition: Distortion.cpp:82
wxString FileExtension
File extension, not including any leading dot.
Definition: Identifier.h:224
#define XO(s)
Definition: Internat.h:31
static wxCharBuffer mFilename
Definition: SelectFile.cpp:38
FilePath SelectFile(FileNames::Operation op, const TranslatableString &message, const FilePath &default_path, const FilePath &default_filename, const FileExtension &default_extension, const FileTypes &fileTypes, int flags, wxWindow *parent)
Definition: SelectFile.cpp:17
FILES_API const FileType AllFiles
Definition: FileNames.h:71

References FileNames::AllFiles, AudacityMessageBox(), TranslatableString::empty(), mFilename, name, SelectFile(), and XO.

Here is the call graph for this function:

Variable Documentation

◆ mFilename

wxCharBuffer mFilename
static

Definition at line 38 of file SelectFile.cpp.

Referenced by VerifyFilename().