fix: sort closest match size by distance
This commit is contained in:
parent
9b68d41b77
commit
933153f9bb
1 changed files with 15 additions and 1 deletions
|
|
@ -68,7 +68,21 @@ impl Theme {
|
||||||
fn closest_match_size(&self, size: u16, scale: u16) -> Vec<PathBuf> {
|
fn closest_match_size(&self, size: u16, scale: u16) -> Vec<PathBuf> {
|
||||||
let dirs = self.get_all_directories();
|
let dirs = self.get_all_directories();
|
||||||
|
|
||||||
dirs.filter(|directory| directory.directory_size_distance(size, scale) < i16::MAX)
|
let mut dirs: Vec<_> = dirs
|
||||||
|
.filter_map(|directory| {
|
||||||
|
let distance = directory.directory_size_distance(size, scale);
|
||||||
|
if distance < i16::MAX {
|
||||||
|
Some((directory, distance))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
dirs.sort_by(|(_, a), (_, b)| a.cmp(b));
|
||||||
|
|
||||||
|
dirs.iter()
|
||||||
|
.map(|(dir, _)| dir)
|
||||||
.map(|dir| dir.name)
|
.map(|dir| dir.name)
|
||||||
.map(|dir| self.path().join(dir))
|
.map(|dir| self.path().join(dir))
|
||||||
.collect()
|
.collect()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue