From e318699a36a0cb273ae7a3bbb6d184ee8413831d Mon Sep 17 00:00:00 2001 From: Kirill Date: Sun, 29 Mar 2026 14:11:11 +0300 Subject: [PATCH] fix(ui): Error with sending file above connections --- src/ui.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ui.rs b/src/ui.rs index e7aab7b..5e072f8 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -184,6 +184,8 @@ impl RcloneUI { self.current_path = path.to_string(); self.search_results.clear(); self.search_pattern.clear(); + // Очищаем выбранные файлы при смене директории + self.selected_paths.clear(); } Err(e) => self.error_message = Some(e), } @@ -511,11 +513,20 @@ impl eframe::App for RcloneUI { } ui.heading("Файлы и папки"); for file in ¤t_files { - let selected = self.selected_paths.contains(&file.path); + // Формируем полный путь rclone (с именем удалённого хранилища) + let full_path = if current_path.ends_with(':') { + format!("{}{}", current_path, file.name) + } else { + format!("{}/{}", current_path, file.name) + }; + let selected = self.selected_paths.contains(&full_path); ui.horizontal(|ui| { if ui.selectable_label(selected, file.icon()).clicked() { - if selected { self.selected_paths.retain(|p| p != &file.path); } - else { self.selected_paths.push(file.path.clone()); } + if selected { + self.selected_paths.retain(|p| p != &full_path); + } else { + self.selected_paths.push(full_path.clone()); + } } if file.is_dir { if ui.link(&file.name).clicked() {