mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-17 02:46:15 +01:00
[Summary] FIxed bug in Windows version of the open file dialog and save file dialog. The filter string for required file types was formed incorrectly.
This commit is contained in:
parent
d69a0b6e42
commit
21d5f00b5c
2 changed files with 28 additions and 29 deletions
|
|
@ -76,24 +76,22 @@ ARDOUR::save_file_dialog (std::vector<std::string> extensions, std::string initi
|
|||
ofn.lpstrTitle = title.c_str();
|
||||
ofn.Flags = OFN_OVERWRITEPROMPT | OFN_EXPLORER;
|
||||
|
||||
|
||||
// Create filter for required file types
|
||||
std::string filter;
|
||||
for (int i = 0; i < extensions.size(); ++i) {
|
||||
filter += "*."+extensions[i]+";";
|
||||
filter += "*."+extensions[i];
|
||||
if (i < (extensions.size() - 1)) {
|
||||
filter += ';';
|
||||
}
|
||||
}
|
||||
|
||||
char c_filter[1 + filter.size() + 2];
|
||||
c_filter[0] = 0;
|
||||
strcpy (c_filter + 1, filter.c_str ());
|
||||
c_filter[1 + filter.size() + 1] = '\0';
|
||||
char c_filter[filter.size()*2 + 3];
|
||||
strcpy (c_filter, filter.c_str ());
|
||||
strcpy (c_filter + filter.size() + 1, filter.c_str ());
|
||||
c_filter[filter.size()*2 + 2] = '\0';
|
||||
|
||||
ofn.lpstrFilter = c_filter;
|
||||
|
||||
if (!extensions.empty()) {
|
||||
ofn.lpstrDefExt = extensions[0].c_str ();
|
||||
}
|
||||
|
||||
// Check on valid path
|
||||
WIN32_FIND_DATA FindFileData;
|
||||
HANDLE handle = FindFirstFile(initial_path.c_str(), &FindFileData) ;
|
||||
|
|
@ -166,20 +164,19 @@ ARDOUR::open_file_dialog (std::vector<std::string> extensions, bool multi_select
|
|||
// Create filter for required file types
|
||||
std::string filter;
|
||||
for (int i = 0; i < extensions.size(); ++i) {
|
||||
filter += "*."+extensions[i]+";";
|
||||
filter += "*."+extensions[i];
|
||||
if (i < (extensions.size() - 1)) {
|
||||
filter += ';';
|
||||
}
|
||||
}
|
||||
|
||||
char c_filter[1 + filter.size() + 2];
|
||||
c_filter[0] = 0;
|
||||
strcpy (c_filter + 1, filter.c_str ());
|
||||
c_filter[1 + filter.size() + 1] = '\0';
|
||||
char c_filter[filter.size()*2 + 3];
|
||||
strcpy (c_filter, filter.c_str ());
|
||||
strcpy (c_filter + filter.size() + 1, filter.c_str ());
|
||||
c_filter[filter.size()*2 + 2] = '\0';
|
||||
|
||||
ofn.lpstrFilter = c_filter;
|
||||
|
||||
if (!extensions.empty()) {
|
||||
ofn.lpstrDefExt = extensions[0].c_str ();
|
||||
}
|
||||
|
||||
// Check on valid path
|
||||
WIN32_FIND_DATA FindFileData;
|
||||
HANDLE handle = FindFirstFile(initial_path.c_str(), &FindFileData) ;
|
||||
|
|
|
|||
|
|
@ -129,17 +129,18 @@ WavesImportDialog::_get_import_mode() const
|
|||
}
|
||||
|
||||
const std::string __audiofile_types[] = {
|
||||
"aif", "AIF", "aifc", "AIFC", "aiff", "AIFF", "amb", "AMB", "au", "AU", "caf", "CAF",
|
||||
"cdr", "CDR", "flac", "FLAC", "htk", "HTK", "iff", "IFF", "mat", "MAT", "oga", "OGA",
|
||||
"ogg", "OGG", "paf", "PAF", "pvf", "PVF", "sf", "SF", "smp", "SMP", "snd", "SND",
|
||||
"maud", "MAUD", "voc", "VOC", "vwe", "VWE", "w64", "W64", "wav", "WAV",
|
||||
"aif", "aifc", "aiff", "amb", "au", "caf",
|
||||
"cdr", "flac", "htk", "iff", "mat", "oga",
|
||||
"ogg", "paf", "pvf", "sf", "smp", "snd",
|
||||
"maud", "voc", "vwe", "w64", "wav"
|
||||
#ifdef HAVE_COREAUDIO
|
||||
"aac", "AAC", "adts", "ADTS",
|
||||
"ac3", "AC3", "amr", "AMR",
|
||||
"mpa", "MPA", "mpeg", "MPEG",
|
||||
"mp1", "MP1", "mp2", "MP2",
|
||||
"mp3", "MP3", "mp4", "MP4",
|
||||
"m4a", "M4A", "sd2", "SD2", // libsndfile supports sd2 also, but the resource fork is required to open.
|
||||
,
|
||||
"aac", "adts",
|
||||
"ac3", "amr",
|
||||
"mpa", "mpeg",
|
||||
"mp1", "mp2",
|
||||
"mp3", "mp4",
|
||||
"m4a", "sd2" // libsndfile supports sd2 also, but the resource fork is required to open.
|
||||
#endif // HAVE_COREAUDIO
|
||||
};
|
||||
|
||||
|
|
@ -148,6 +149,7 @@ WavesImportDialog::run_import ()
|
|||
{
|
||||
std::vector<std::string> audiofile_types (__audiofile_types,
|
||||
__audiofile_types + sizeof (__audiofile_types)/sizeof(__audiofile_types[0]));
|
||||
|
||||
do {
|
||||
_files_to_import = ARDOUR::open_file_dialog (audiofile_types, true, __initial_folder);
|
||||
if (_files_to_import.empty ()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue