clock: fix play/pause

This commit is contained in:
🪞👃🪞 2025-05-09 23:22:28 +03:00
parent 9e8572ae0f
commit 5fa5a875b7
5 changed files with 21 additions and 22 deletions

View file

@ -42,33 +42,29 @@ mod config; pub use self::config::*;
mod model; pub use self::model::*;
mod view; pub use self::view::*;
#[cfg(test)] #[test] fn test_model () {
#[cfg(test)] #[test] fn test_model () -> Usually<()> {
let mut app = App::default();
let _ = app.clip();
let _ = app.toggle_loop();
}
#[cfg(test)] #[test] fn test_model_scene () {
let mut app = App::default();
//let _ = app.tracks_add(8, None, &[], &[])?;
//let _ = app.track_add_focus()?;
let _ = app.scene_longest();
let _ = app.scene();
let _ = app.scene_mut();
let _ = app.scene_add(None, None);
app.scene_del(0);
let _ = app.scene_add(None, None)?;
let _ = app.scene_add_focus()?;
let scene = app.scene_del(0);
let scene = Scene::default();
let _ = scene.pulses();
let _ = scene.is_playing(&[]);
}
#[cfg(test)] #[test] fn test_view_clock () {
let _ = button_play_pause(true);
let mut app = App::default();
let _ = app.view_transport();
let _ = app.view_status();
let _ = app.update_clock();
Ok(())
}
#[cfg(test)] #[test] fn test_view_layout () {
let _ = button_play_pause(true);
let _ = button_2("", "", true);
let _ = button_2("", "", false);
let _ = button_3("", "", "", true);

View file

@ -46,13 +46,16 @@ pub trait HasScenes: HasSelection + HasEditor + Send + Sync {
self.scenes().iter().map(|s|s.name.len()).fold(0, usize::max)
}
fn scene (&self) -> Option<&Scene> {
self.selected().scene().and_then(|s|self.scenes().get(s))
self.selected().scene()
.and_then(|s|self.scenes().get(s))
}
fn scene_mut (&mut self) -> Option<&mut Scene> {
self.selected().scene().and_then(|s|self.scenes_mut().get_mut(s))
self.selected().scene()
.and_then(|s|self.scenes_mut().get_mut(s))
}
fn scene_del (&mut self, index: usize) {
self.selected().scene().and_then(|s|Some(self.scenes_mut().remove(index)));
fn scene_del (&mut self, index: usize) -> Option<Scene> {
self.selected().scene()
.and_then(|s|Some(self.scenes_mut().remove(index)))
}
/// Set the color of a scene, returning the previous one.
fn scene_set_color (&mut self, index: usize, color: ItemTheme) -> ItemTheme {