switching to using cosmic's version of video_player
This commit is contained in:
parent
c87f4b2cdc
commit
06debe1cc8
4 changed files with 444 additions and 13 deletions
|
@ -1,17 +1,22 @@
|
|||
use cosmic::{
|
||||
dialog::ashpd::url::Url,
|
||||
iced::{widget::text, ContentFit, Length},
|
||||
iced_widget::stack,
|
||||
prelude::*,
|
||||
widget::{image, Container},
|
||||
Task,
|
||||
};
|
||||
use tracing::debug;
|
||||
use iced_video_player::{Video, VideoPlayer};
|
||||
use miette::{Context, IntoDiagnostic};
|
||||
use tracing::{debug, error};
|
||||
|
||||
use crate::core::slide::Slide;
|
||||
|
||||
#[derive(Default, Clone, Debug)]
|
||||
// #[derive(Default, Clone, Debug)]
|
||||
pub(crate) struct Presenter {
|
||||
slides: Vec<Slide>,
|
||||
current_slide: i16,
|
||||
video: Video,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
|
@ -22,6 +27,24 @@ pub(crate) enum Message {
|
|||
}
|
||||
|
||||
impl Presenter {
|
||||
pub fn with_initial_slide(slide: Slide) -> Self {
|
||||
Self {
|
||||
slides: vec![slide],
|
||||
current_slide: 0,
|
||||
video: {
|
||||
let url = Url::from_file_path("/home/chris/vids/test/camprules2024.mp4").unwrap();
|
||||
let result = Video::new(&url);
|
||||
match result {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
// let root = e.source();
|
||||
panic!("Error here: {e}")
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub fn update(&mut self, message: Message) -> Task<cosmic::app::Message<Message>> {
|
||||
match message {
|
||||
Message::NextSlide => {
|
||||
|
@ -42,7 +65,6 @@ impl Presenter {
|
|||
pub fn view(&self) -> Element<Message> {
|
||||
// let window = self.windows.iter().position(|w| *w == id).unwrap();
|
||||
// if let Some(_window) = self.windows.get(window) {}
|
||||
// let video = Video::new(&Url::parse("/home/chris/vids/test/camprules2024.mp4").unwrap())
|
||||
let text = text!("This is frodo").size(50);
|
||||
let text = Container::new(text).center(Length::Fill);
|
||||
let image = Container::new(
|
||||
|
@ -51,10 +73,14 @@ impl Presenter {
|
|||
.width(Length::Fill)
|
||||
.height(Length::Fill),
|
||||
);
|
||||
// let video = Container::new(VideoPlayer::new(&video))
|
||||
// .width(Length::Fill)
|
||||
// .height(Length::Fill);
|
||||
let stack = stack!(image, text).width(Length::Fill).height(Length::Fill);
|
||||
let video = Container::new(
|
||||
VideoPlayer::new(&self.video)
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill),
|
||||
);
|
||||
let stack = stack!(image, video, text)
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill);
|
||||
stack.into()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue