making a subtext that uses the path of the background

This commit is contained in:
Chris Cochrun 2025-02-23 22:03:15 -06:00
parent d29e3b0dff
commit a8f7651164
6 changed files with 55 additions and 2 deletions

View file

@ -1,7 +1,10 @@
use crate::Background;
use super::{kinds::ServiceItemKind, service_items::ServiceItem};
pub trait Content {
fn title(&self) -> String;
fn kind(&self) -> ServiceItemKind;
fn to_service_item(&self) -> ServiceItem;
fn background(&self) -> Option<Background>;
}

View file

@ -40,6 +40,16 @@ impl Content for Image {
fn to_service_item(&self) -> super::service_items::ServiceItem {
self.into()
}
fn background(&self) -> Option<Background> {
if let Ok(background) =
Background::try_from(self.path.clone())
{
Some(background)
} else {
None
}
}
}
impl From<Value> for Image {

View file

@ -54,6 +54,16 @@ impl Content for Presentation {
fn to_service_item(&self) -> super::service_items::ServiceItem {
self.into()
}
fn background(&self) -> Option<Background> {
if let Ok(background) =
Background::try_from(self.path.clone())
{
Some(background)
} else {
None
}
}
}
impl From<Value> for Presentation {

View file

@ -1,4 +1,4 @@
use std::{collections::HashMap, path::PathBuf};
use std::{collections::HashMap, option::Option, path::PathBuf};
use cosmic::iced::Executor;
use crisp::types::{Keyword, Symbol, Value};
@ -54,6 +54,10 @@ impl Content for Song {
fn to_service_item(&self) -> super::service_items::ServiceItem {
self.into()
}
fn background(&self) -> Option<Background> {
self.background.clone()
}
}
impl ServiceTrait for Song {

View file

@ -45,6 +45,16 @@ impl Content for Video {
fn to_service_item(&self) -> super::service_items::ServiceItem {
self.into()
}
fn background(&self) -> Option<Background> {
if let Ok(background) =
Background::try_from(self.path.clone())
{
Some(background)
} else {
None
}
}
}
impl From<Value> for Video {