| 538 | } |
| 539 | |
| 540 | fn pre_update(&mut self, ctx: &egui::Context) { |
| 541 | self.appearance.pre_update(ctx); |
| 542 | |
| 543 | let ViewState { jobs, diff_state, config_state, .. } = &mut self.view_state; |
| 544 | |
| 545 | jobs.collect_results(); |
| 546 | jobs.results.retain(|result| match result { |
| 547 | JobResult::Update(state) => { |
| 548 | if let Ok(mut guard) = self.relaunch_path.lock() { |
| 549 | *guard = Some(state.exe_path.clone()); |
| 550 | self.should_relaunch = true; |
| 551 | } |
| 552 | false |
| 553 | } |
| 554 | _ => true, |
| 555 | }); |
| 556 | diff_state.pre_update(jobs, &self.state); |
| 557 | config_state.pre_update(jobs, &self.state); |
| 558 | debug_assert!(jobs.results.is_empty()); |
| 559 | } |
| 560 | |
| 561 | fn post_update(&mut self, ctx: &egui::Context, action: Option<DiffViewAction>) { |
| 562 | if action.is_some() { |