移除多余的Rc::clone

This commit is contained in:
JIe Jie 2024-07-11 10:52:26 +08:00
parent 61b2edca36
commit 3dc2b3d432

View File

@ -64,10 +64,9 @@ impl UiService {
fn init_refresh_com_button(&mut self) { fn init_refresh_com_button(&mut self) {
let ui_rc = Rc::clone(&self.ui); let ui_rc = Rc::clone(&self.ui);
let ui_rc_clone = Rc::clone(&ui_rc); self.ui.borrow_mut().refresh_com_btn.set_callback(move |_| {
ui_rc.borrow_mut().refresh_com_btn.set_callback(move |_| {
let comports = WorkService::get_port_names(); let comports = WorkService::get_port_names();
let mut ui = ui_rc_clone.borrow_mut(); let mut ui = ui_rc.borrow_mut();
ui.com_choice.clear(); ui.com_choice.clear();
for com in comports { for com in comports {
ui.com_choice.add_choice(&com); ui.com_choice.add_choice(&com);
@ -75,9 +74,8 @@ impl UiService {
}); });
} }
fn init_exit_callback(&mut self) { fn init_exit_callback(&mut self) {
let ui_rc = Rc::clone(&self.ui);
let work_service_rc = Rc::clone(&self.work_service); let work_service_rc = Rc::clone(&self.work_service);
ui_rc.borrow_mut().main_window.set_callback(move |_| { self.ui.borrow_mut().main_window.set_callback(move |_| {
let work_service = work_service_rc.borrow_mut(); let work_service = work_service_rc.borrow_mut();
work_service.save_config(); work_service.save_config();
process::exit(0); process::exit(0);
@ -86,10 +84,9 @@ impl UiService {
fn init_set_line_btn(&mut self) { fn init_set_line_btn(&mut self) {
let ui_rc = Rc::clone(&self.ui); let ui_rc = Rc::clone(&self.ui);
let ui_rc_clone = Rc::clone(&ui_rc);
let work_service_rc = Rc::clone(&self.work_service); let work_service_rc = Rc::clone(&self.work_service);
ui_rc.borrow_mut().set_lines_btn.set_callback(move |_| { self.ui.borrow_mut().set_lines_btn.set_callback(move |_| {
let ui_clone = ui_rc_clone.clone(); let ui_clone = ui_rc.clone();
let mut set_dialog = UserInterface1::make_set_line_window(); let mut set_dialog = UserInterface1::make_set_line_window();
let work_service_rc_clone = work_service_rc.clone(); let work_service_rc_clone = work_service_rc.clone();
set_dialog.ok_btn.set_callback(move |_| { set_dialog.ok_btn.set_callback(move |_| {
@ -108,10 +105,9 @@ impl UiService {
} }
fn init_start_btn(&mut self) { fn init_start_btn(&mut self) {
let ui_rc = Rc::clone(&self.ui); let ui_rc_clone = Rc::clone(&self.ui);
let ui_rc_clone = Rc::clone(&ui_rc);
let work_service_rc = Rc::clone(&self.work_service); let work_service_rc = Rc::clone(&self.work_service);
ui_rc.borrow_mut().start_btn.set_callback(move |_| { self.ui.borrow_mut().start_btn.set_callback(move |_| {
let mut ui = ui_rc_clone.borrow_mut(); let mut ui = ui_rc_clone.borrow_mut();
let mut work_service = work_service_rc.borrow_mut(); let mut work_service = work_service_rc.borrow_mut();
if let Some(mut buffer) = ui.log_content.buffer() { if let Some(mut buffer) = ui.log_content.buffer() {
@ -146,9 +142,8 @@ impl UiService {
} }
fn init_log(&mut self) { fn init_log(&mut self) {
let ui_rc = Rc::clone(&self.ui);
let text_buffer = TextBuffer::default(); let text_buffer = TextBuffer::default();
ui_rc.borrow_mut().log_content.set_buffer(text_buffer.clone()); self.ui.borrow_mut().log_content.set_buffer(text_buffer.clone());
let text_buffer_arc = Arc::new(Mutex::new(text_buffer)); let text_buffer_arc = Arc::new(Mutex::new(text_buffer));
LOGGER.set_callback(move |msg| { LOGGER.set_callback(move |msg| {
let mut text_buffer = text_buffer_arc.lock().unwrap(); let mut text_buffer = text_buffer_arc.lock().unwrap();
@ -158,10 +153,9 @@ impl UiService {
fn init_excel(&mut self) { fn init_excel(&mut self) {
let ui_rc = Rc::clone(&self.ui); let ui_rc = Rc::clone(&self.ui);
let ui_clone = Rc::clone(&self.ui);
let work_service_clone = Rc::clone(&self.work_service); let work_service_clone = Rc::clone(&self.work_service);
ui_rc.borrow_mut().select_file_btn.set_callback(move |_| { self.ui.borrow_mut().select_file_btn.set_callback(move |_| {
let mut ui = ui_clone.borrow_mut(); let mut ui = ui_rc.borrow_mut();
let mut work_service = work_service_clone.borrow_mut(); let mut work_service = work_service_clone.borrow_mut();
let mut dialog = fltk::dialog::FileDialog::new(fltk::dialog::FileDialogType::BrowseFile); let mut dialog = fltk::dialog::FileDialog::new(fltk::dialog::FileDialogType::BrowseFile);
dialog.show(); dialog.show();