changing slides works better now
Some checks are pending
/ test (push) Waiting to run

This commit is contained in:
Chris Cochrun 2025-08-16 22:51:26 -05:00
parent abcb283a0d
commit 004eb60470
4 changed files with 78 additions and 28 deletions

View file

@ -61,6 +61,8 @@ pub(crate) struct Presenter {
pub(crate) enum Action {
Task(Task<Message>),
NextSlide,
PrevSlide,
None,
}
@ -177,23 +179,25 @@ impl Presenter {
pub fn update(&mut self, message: Message) -> Action {
match message {
Message::NextSlide => {
debug!("next slide");
if self.slides.len() as u16 - 1
== self.current_slide_index
{
debug!("no more slides");
return Action::None;
}
return Action::NextSlide;
// debug!("next slide");
// if self.slides.len() as u16 - 1
// == self.current_slide_index
// {
// debug!("no more slides");
// return Action::None;
// }
// return self.update(Message::SlideChange(
// self.current_slide_index + 1,
// ));
}
Message::PrevSlide => {
debug!("prev slide");
if 0 == self.current_slide_index {
debug!("beginning slides");
return Action::None;
}
return Action::PrevSlide;
// debug!("prev slide");
// if 0 == self.current_slide_index {
// debug!("beginning slides");
// return Action::None;
// }
// return self.update(Message::SlideChange(
// self.current_slide_index - 1,
// ));
@ -383,7 +387,7 @@ impl Presenter {
pub fn view(&self) -> Element<Message> {
slide_view(
&self.current_slide,
self.current_slide.clone(),
&self.video,
self.current_font,
false,
@ -393,7 +397,7 @@ impl Presenter {
pub fn view_preview(&self) -> Element<Message> {
slide_view(
&self.current_slide,
self.current_slide.clone(),
&self.video,
self.current_font,
false,
@ -436,7 +440,7 @@ impl Presenter {
as i32;
let container =
slide_view(&slide, &self.video, font, true, false);
slide_view(slide.clone(), &self.video, font, true, false);
let delegate = mouse_area(
Container::new(container)
.style(move |t| {
@ -543,7 +547,7 @@ fn scale_font(font_size: f32, width: f32) -> f32 {
}
pub(crate) fn slide_view<'a>(
slide: &'a Slide,
slide: Slide,
video: &'a Option<Video>,
font: Font,
delegate: bool,

View file

@ -289,12 +289,12 @@ impl SongEditor {
if let Some(song) = &self.song {
if let Ok(slides) = song.to_slides() {
let slides = slides
.into_iter()
.iter()
.enumerate()
.map(|(index, slide)| {
container(
slide_view(
&slide,
slide.clone(),
if index == 0 {
&self.video
} else {