Skip to content

Commit a118a0f

Browse files
authored
Add uppercase extensions to file dialog on non-windows (#53)
* add uppercase extensions to file dialog on non-windows * tidy
1 parent 9121f9b commit a118a0f

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

xpano/gui/file_dialog.cc

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,31 @@ namespace xpano::gui::file_dialog {
1919

2020
namespace {
2121

22+
template <typename TArray>
23+
TArray Uppercase(const TArray& extensions) {
24+
TArray result;
25+
auto to_upper = [](const auto& extension) {
26+
auto uppercase_extension = extension;
27+
std::transform(extension.begin(), extension.end(),
28+
uppercase_extension.begin(),
29+
[](const auto& letter) { return std::toupper(letter); });
30+
return uppercase_extension;
31+
};
32+
std::transform(extensions.begin(), extensions.end(), result.begin(),
33+
to_upper);
34+
return result;
35+
}
36+
2237
std::vector<std::filesystem::path> MultifileOpen() {
2338
NFD::UniquePathSet out_paths;
2439

2540
std::array<nfdfilteritem_t, 1> filter_item;
2641
auto extensions = fmt::format("{}", fmt::join(kSupportedExtensions, ","));
42+
#ifndef _WIN32
43+
extensions = fmt::format("{},{}", extensions,
44+
fmt::join(Uppercase(kSupportedExtensions), ","));
45+
#endif
46+
2747
filter_item[0] = {"Images", extensions.c_str()};
2848
std::vector<std::filesystem::path> results;
2949

0 commit comments

Comments
 (0)