diff options
| author | krolxon <krolyxon@tutanota.com> | 2024-05-22 19:36:49 +0530 |
|---|---|---|
| committer | krolxon <krolyxon@tutanota.com> | 2024-05-22 19:36:49 +0530 |
| commit | 380a4193c920bb90606ef4590ad5111161fedfc7 (patch) | |
| tree | 0b6556b70e08a363be5ea0788d9a0d292cd77c06 | |
| parent | c3dc9931d58b69d10fdba442fea7e77609934627 (diff) | |
fix sorting
| -rwxr-xr-x | src/browser.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/browser.rs b/src/browser.rs index 3d57a79..3ec0fac 100755 --- a/src/browser.rs +++ b/src/browser.rs @@ -62,8 +62,19 @@ impl FileBrowser { } } - dir_vec.sort_by(|a, b| a.0.cmp(&b.0)); - file_vec.sort_by(|a, b| a.0.cmp(&b.0)); + // dir_vec.sort_by(|a, b| a.1.cmp(&b.1)); + dir_vec.sort_by(|a, b| { + let num_a = a.1.parse::<u32>().unwrap_or(u32::MAX); + let num_b = b.1.parse::<u32>().unwrap_or(u32::MAX); + num_a.cmp(&num_b).then_with(|| a.1.to_lowercase().cmp(&b.1.to_lowercase())) + }); + + file_vec.sort_by(|a, b| { + let num_a = a.1.parse::<u32>().unwrap_or(u32::MAX); + let num_b = b.1.parse::<u32>().unwrap_or(u32::MAX); + num_a.cmp(&num_b).then_with(|| a.1.to_lowercase().cmp(&b.1.to_lowercase())) + }); + dir_vec.extend(file_vec); self.filetree = dir_vec; |
