Skip to content

Commit

Permalink
bak
Browse files Browse the repository at this point in the history
  • Loading branch information
TC999 committed Jan 7, 2025
1 parent 499875f commit d50402b
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 26 deletions.
48 changes: 23 additions & 25 deletions src/confirmation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::logger;
use crate::delete;
use crate::utils;

pub fn show_confirmation(ctx: &egui::Context, message: &str) -> Option<bool> {
pub fn show_confirmation(ctx: &egui::Context, message: &str, status: &mut Option<String>) -> Option<bool> {
let mut result = None;

egui::Window::new("确认操作")
Expand All @@ -12,6 +12,11 @@ pub fn show_confirmation(ctx: &egui::Context, message: &str) -> Option<bool> {
.show(ctx, |ui| {
ui.label(message);

// 显示状态信息
if let Some(status_message) = status {
ui.label(status_message);
}

ui.horizontal(|ui| {
if ui.button("确认").clicked() {
result = Some(true);
Expand All @@ -26,39 +31,32 @@ pub fn show_confirmation(ctx: &egui::Context, message: &str) -> Option<bool> {
result
}

// 新增函数,用于显示成功提示
pub fn show_success(ctx: &egui::Context, message: &str) {
egui::Window::new("操作成功")
.collapsible(false)
.resizable(false)
.show(ctx, |ui| {
ui.label(message);
if ui.button("关闭").clicked() {
ui.close_menu(); // 关闭窗口
}
});
}

pub fn handle_delete_confirmation(
ctx: &egui::Context,
confirm_delete: &mut Option<(String, bool)>,
selected_appdata_folder: &str,
status: &mut Option<String>,
) {
if let Some((folder_name, _)) = confirm_delete {
let message = format!("确定要彻底删除文件夹 {} 吗?", folder_name);
logger::log_info(&message);
if let Some(confirm) = show_confirmation(ctx, &message) {
if let Some(confirm) = show_confirmation(ctx, &message, status) {
if confirm {
if let Some(base_path) = utils::get_appdata_dir(selected_appdata_folder) {
let full_path = base_path.join(&folder_name); // 传递引用
if let Err(err) = delete::delete_folder(&full_path) {
eprintln!("Error: {}", err);
logger::log_error(&format!("Error: {}", err));
} else {
// 检查文件夹是否已成功删除
if !full_path.exists() {
let success_message = format!("文件夹 {} 已成功删除", folder_name);
show_success(ctx, &success_message);
let full_path = base_path.join(&folder_name);
match delete::delete_folder(&full_path) {
Ok(_) => {
// 检查文件夹是否已成功删除
if !full_path.exists() {
*status = Some(format!("文件夹 {} 已成功删除", folder_name));
} else {
*status = Some(format!("文件夹 {} 删除失败", folder_name));
}
}
Err(err) => {
eprintln!("Error: {}", err);
logger::log_error(&format!("Error: {}", err));
*status = Some(format!("删除文件夹 {} 时发生错误: {}", folder_name, err));
}
}
} else {
Expand All @@ -67,9 +65,9 @@ pub fn handle_delete_confirmation(
"无法获取 {} 文件夹路径",
selected_appdata_folder
));
*status = Some(format!("无法获取 {} 文件夹路径", selected_appdata_folder));
}
}
*confirm_delete = None; // 清除状态
}
}
}
4 changes: 3 additions & 1 deletion src/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ impl eframe::App for AppDataCleaner {
}

// 删除确认弹窗逻辑
confirmation::handle_delete_confirmation(ctx, &mut self.confirm_delete, &self.selected_appdata_folder);
confirmation::handle_delete_confirmation(ctx, &mut self.confirm_delete, &self.selected_appdata_folder, &mut self.status);

// 顶部菜单
egui::TopBottomPanel::top("menu_bar").show(ctx, |ui| {
Expand Down Expand Up @@ -176,6 +176,7 @@ impl eframe::App for AppDataCleaner {
if !self.ignored_folders.contains(folder) {
if ui.button("彻底删除").clicked() {
self.confirm_delete = Some((folder.clone(), false));
self.status = None; // 每次点击"彻底删除"时清除状态
}
if ui.button("移动").clicked() {
self.move_module.show_window = true;
Expand Down Expand Up @@ -217,5 +218,6 @@ impl eframe::App for AppDataCleaner {

// 显示移动窗口
self.move_module.show_move_window(ctx);

}
}

0 comments on commit d50402b

Please sign in to comment.