Added chain previous event functionality

This commit is contained in:
Alexey 2025-11-12 14:55:21 +03:00
commit 12366b1247
4 changed files with 51 additions and 3 deletions

View file

@ -59,6 +59,7 @@ fn load_log(ui_weak: Weak<AppWindow>, log: Arc<Mutex<Log>>) {
let model: ModelRc<TimelineEvent> = Rc::new(VecModel::from(events)).into();
ui.set_record_events(model);
ui.set_in_progress(in_progress);
ui.invoke_get_previous_event();
}
fn load_colors(ui_weak: Weak<AppWindow>, config: Arc<Config>) {
@ -229,6 +230,25 @@ fn main() -> Result<(), Box<dyn Error>> {
ui.invoke_start_new_event(event_name);
}
});
ui.on_get_previous_event({
let ui_weak = ui.as_weak();
let log = writing_log.clone();
move || {
let ui = ui_weak.unwrap();
let prev_event_name = {
let log_guard = log.lock().expect("Log shouldn't be used twice");
let prev_index = log_guard.events.len() - 2;
log_guard.events
.get(prev_index)
.expect("Index is already checked")
.name
.clone()
};
println!("{}", prev_event_name.as_str());
ui.set_previous_event_name(prev_event_name.to_shared_string());
}
});
ui.on_new_day_started({
let ui_weak = ui.as_weak();
@ -272,7 +292,10 @@ fn main() -> Result<(), Box<dyn Error>> {
}
});
ui.invoke_get_previous_event();
ui.run()?;
Ok(())
}