From 34100d73473bddc686ccaeb01e8c314d42ccd3dd Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 8 Feb 2022 05:11:54 +0000 Subject: [PATCH] Fix audio-file list for utf8 Signed-off-by: falkTX --- plugins/Cardinal/src/AudioFile.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/Cardinal/src/AudioFile.cpp b/plugins/Cardinal/src/AudioFile.cpp index 72079a9..02c0bda 100644 --- a/plugins/Cardinal/src/AudioFile.cpp +++ b/plugins/Cardinal/src/AudioFile.cpp @@ -437,9 +437,15 @@ struct AudioFileListWidget : ImGuiWidget { }; using namespace ghc::filesystem; - currentDirectory = path(module->currentFile).parent_path().string(); + const path currentFile = u8path(module->currentFile); + currentDirectory = currentFile.parent_path().generic_u8string(); + + directory_iterator it; + + try { + it = directory_iterator(u8path(currentDirectory)); + } DISTRHO_SAFE_EXCEPTION_RETURN("Failed to open current directory",); - directory_iterator it(currentDirectory); for (directory_iterator itb = begin(it), ite=end(it); itb != ite; ++itb) { if (! itb->is_regular_file()) @@ -450,7 +456,7 @@ struct AudioFileListWidget : ImGuiWidget { { if (extension.compare(supportedExtensions[i]) == 0) { - currentFiles.push_back({ filepath.string(), filepath.filename().string() }); + currentFiles.push_back({ filepath.generic_u8string(), filepath.filename().generic_u8string() }); break; } } @@ -460,7 +466,7 @@ struct AudioFileListWidget : ImGuiWidget { for (size_t index = 0; index < currentFiles.size(); ++index) { - if (currentFiles[index].full.compare(module->currentFile) == 0) + if (currentFiles[index].full.compare(currentFile) == 0) { selectedFile = index; break;