From f81efdeef385c4eb49487b16cddb118eec6ef309 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Thu, 14 Nov 2024 15:24:20 -0600 Subject: [PATCH] needing to make slides a structure in multiple places --- src/main.rs | 15 ++++++++---- src/ui/mod.rs | 1 + src/ui/presenter.rs | 51 +++++++++++++++++++++++------------------ src/ui/slide_preview.rs | 5 ++++ 4 files changed, 45 insertions(+), 27 deletions(-) create mode 100644 src/ui/slide_preview.rs diff --git a/src/main.rs b/src/main.rs index 16b54a5..fc2b6ec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -68,15 +68,16 @@ fn theme(_state: &App) -> Theme { Theme::dark() } -struct App { +struct App<'a> { core: Core, nav_model: nav_bar::Model, file: PathBuf, - presenter: Presenter, + presenter: Presenter<'a>, windows: Vec, + slides: Vec, } -impl Default for App { +impl Default for App<'_> { fn default() -> Self { let initial_slide = SlideBuilder::new() .background(PathBuf::from( @@ -86,13 +87,15 @@ impl Default for App { .text("Hello") .build() .expect("oops slide"); - let presenter = Presenter::with_initial_slide(initial_slide); + let slides = vec![initial_slide]; + let presenter = Presenter::with_app_slides(&slides); Self { presenter, core: Core::default(), nav_model: nav_bar::Model::default(), file: PathBuf::default(), windows: vec![], + slides: vec![initial_slide], } } } @@ -151,7 +154,8 @@ impl cosmic::Application for App { .video_end_time(0.0) .build() .expect("oops slide"); - let presenter = Presenter::with_initial_slide(initial_slide); + let presenter = + Presenter::with_initial_slide(initial_slide.clone()); let mut app = App { core, @@ -159,6 +163,7 @@ impl cosmic::Application for App { file: input.file, windows, presenter, + slides: vec![initial_slide], }; let command; diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 642e8f7..0ff54bb 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -1 +1,2 @@ pub mod presenter; +pub mod slide_preview; diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index 3a4ac7e..2e6299e 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -17,8 +17,8 @@ use tracing::{debug, error}; use crate::core::slide::Slide; // #[derive(Default, Clone, Debug)] -pub(crate) struct Presenter { - pub slides: Vec, +pub(crate) struct Presenter<'a> { + pub slides: &'a Vec, pub current_slide: i16, pub video: Option