rmptui6347e2e
fix sorting
+13 −2
1 file changed
- M src/browser.rs +13 −2
| @@ -62,8 +62,19 @@ impl FileBrowser { | |||
| 62 | 62 | } | |
| 63 | 63 | } | |
| 64 | 64 | ||
| 65 | − | dir_vec.sort_by(|a, b| a.0.cmp(&b.0)); | |
| 66 | − | file_vec.sort_by(|a, b| a.0.cmp(&b.0)); | |
| 65 | + | // dir_vec.sort_by(|a, b| a.1.cmp(&b.1)); | |
| 66 | + | dir_vec.sort_by(|a, b| { | |
| 67 | + | let num_a = a.1.parse::<u32>().unwrap_or(u32::MAX); | |
| 68 | + | let num_b = b.1.parse::<u32>().unwrap_or(u32::MAX); | |
| 69 | + | num_a.cmp(&num_b).then_with(|| a.1.to_lowercase().cmp(&b.1.to_lowercase())) | |
| 70 | + | }); | |
| 71 | + | ||
| 72 | + | file_vec.sort_by(|a, b| { | |
| 73 | + | let num_a = a.1.parse::<u32>().unwrap_or(u32::MAX); | |
| 74 | + | let num_b = b.1.parse::<u32>().unwrap_or(u32::MAX); | |
| 75 | + | num_a.cmp(&num_b).then_with(|| a.1.to_lowercase().cmp(&b.1.to_lowercase())) | |
| 76 | + | }); | |
| 77 | + | ||
| 67 | 78 | dir_vec.extend(file_vec); | |
| 68 | 79 | self.filetree = dir_vec; | |
| 69 | 80 | ||