From 5306d6d02704c075aa0cc76cff1f3814d291d07a Mon Sep 17 00:00:00 2001 From: ChristianVisintin Date: Mon, 30 Nov 2020 16:07:13 +0100 Subject: [PATCH] Sort file entries by name --- src/host/mod.rs | 1 + src/ui/activities/filetransfer_activity.rs | 22 ++++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/host/mod.rs b/src/host/mod.rs index 7177e24..7f0f067 100644 --- a/src/host/mod.rs +++ b/src/host/mod.rs @@ -128,6 +128,7 @@ impl Localhost { /// ### list_dir /// /// List files in current directory + #[allow(dead_code)] pub fn list_dir(&self) -> Vec { self.files.clone() } diff --git a/src/ui/activities/filetransfer_activity.rs b/src/ui/activities/filetransfer_activity.rs index b594dcc..cdbc1fe 100644 --- a/src/ui/activities/filetransfer_activity.rs +++ b/src/ui/activities/filetransfer_activity.rs @@ -151,6 +151,19 @@ impl FileExplorer { pub fn popd(&mut self) -> Option { self.dirstack.pop_front() } + + /// ### sort_files_by_name + /// + /// Sort explorer files by their name + pub fn sort_files_by_name(&mut self) { + self.files.sort_by_key(|x: &FsEntry| { + match x { + FsEntry::Directory(dir) => dir.name.clone(), + FsEntry::File(file) => file.name.clone() + } + }); + } + } /// ## FileExplorerTab @@ -667,6 +680,8 @@ impl FileTransferActivity { // Reset index self.local.index = 0; self.local.files = files; + // Sort files + self.local.sort_files_by_name(); } Err(err) => { self.log( @@ -685,7 +700,9 @@ impl FileTransferActivity { Ok(files) => { // Reset index self.remote.index = 0; - self.remote.files = files + self.remote.files = files; + // Sort files + self.remote.sort_files_by_name(); } Err(err) => { self.log( @@ -1469,7 +1486,8 @@ impl FileTransferActivity { LogLevel::Info, format!("Created directory \"{}\"", input).as_ref(), ); - self.local.files = self.context.as_ref().unwrap().local.list_dir(); + let wrkdir: PathBuf = self.context.as_ref().unwrap().local.pwd(); + self.local_scan(wrkdir.as_path()); } Err(err) => { // Report err