parent
4792304d8b
commit
d6b4cc6297
3 changed files with 63 additions and 17 deletions
|
@ -460,14 +460,45 @@ impl<'a> Library {
|
|||
}))
|
||||
.center_y(20)
|
||||
.center_x(Length::Fill);
|
||||
let subtext = container(responsive(|size| {
|
||||
let subtext = container(responsive(move |size| {
|
||||
let color: Color = if item.background().is_some() {
|
||||
theme::active().cosmic().accent_text_color().into()
|
||||
if let Some((library, selected)) = self.selected_item
|
||||
{
|
||||
if model.kind == library
|
||||
&& selected == index as i32
|
||||
{
|
||||
theme::active().cosmic().control_0().into()
|
||||
} else {
|
||||
theme::active()
|
||||
.cosmic()
|
||||
.accent_text_color()
|
||||
.into()
|
||||
}
|
||||
} else {
|
||||
theme::active()
|
||||
.cosmic()
|
||||
.accent_text_color()
|
||||
.into()
|
||||
}
|
||||
} else {
|
||||
theme::active()
|
||||
.cosmic()
|
||||
.destructive_text_color()
|
||||
.into()
|
||||
if let Some((library, selected)) = self.selected_item
|
||||
{
|
||||
if model.kind == library
|
||||
&& selected == index as i32
|
||||
{
|
||||
theme::active().cosmic().control_0().into()
|
||||
} else {
|
||||
theme::active()
|
||||
.cosmic()
|
||||
.destructive_text_color()
|
||||
.into()
|
||||
}
|
||||
} else {
|
||||
theme::active()
|
||||
.cosmic()
|
||||
.destructive_text_color()
|
||||
.into()
|
||||
}
|
||||
};
|
||||
text::body(elide_text(item.subtext(), size.width))
|
||||
.center()
|
||||
|
@ -498,7 +529,19 @@ impl<'a> Library {
|
|||
{
|
||||
t.cosmic().accent.selected.into()
|
||||
} else {
|
||||
t.cosmic().button.base.into()
|
||||
if let Some((library, hovered)) =
|
||||
self.hovered_item
|
||||
{
|
||||
if model.kind == library
|
||||
&& hovered == index as i32
|
||||
{
|
||||
t.cosmic().button.hover.into()
|
||||
} else {
|
||||
t.cosmic().button.base.into()
|
||||
}
|
||||
} else {
|
||||
t.cosmic().button.base.into()
|
||||
}
|
||||
}
|
||||
} else if let Some((library, hovered)) =
|
||||
self.hovered_item
|
||||
|
@ -519,6 +562,7 @@ impl<'a> Library {
|
|||
.rounded(t.cosmic().corner_radii.radius_m),
|
||||
)
|
||||
})
|
||||
.padding([3, 0])
|
||||
.into()
|
||||
}
|
||||
|
||||
|
|
|
@ -2,36 +2,36 @@ use miette::{IntoDiagnostic, Result};
|
|||
use std::{fs::File, io::BufReader, path::PathBuf, sync::Arc};
|
||||
|
||||
use cosmic::{
|
||||
Task,
|
||||
iced::{
|
||||
Background, Border, Color, ContentFit, Font, Length, Shadow,
|
||||
Vector,
|
||||
alignment::Horizontal,
|
||||
border,
|
||||
font::{Family, Stretch, Style, Weight},
|
||||
Background, Border, Color, ContentFit, Font, Length, Shadow,
|
||||
Vector,
|
||||
},
|
||||
iced_widget::{
|
||||
rich_text,
|
||||
scrollable::{
|
||||
AbsoluteOffset, Direction, Scrollbar, scroll_to,
|
||||
scroll_to, AbsoluteOffset, Direction, Scrollbar,
|
||||
},
|
||||
span, stack, vertical_rule,
|
||||
},
|
||||
prelude::*,
|
||||
widget::{
|
||||
Column, Container, Id, Row, Space, container, image,
|
||||
mouse_area, responsive, scrollable, text,
|
||||
container, image, mouse_area, responsive, scrollable, text,
|
||||
Column, Container, Id, Row, Space,
|
||||
},
|
||||
Task,
|
||||
};
|
||||
use iced_video_player::{Position, Video, VideoPlayer, gst_pbutils};
|
||||
use iced_video_player::{gst_pbutils, Position, Video, VideoPlayer};
|
||||
use rodio::{Decoder, OutputStream, Sink};
|
||||
use tracing::{debug, error, info, warn};
|
||||
use url::Url;
|
||||
|
||||
use crate::{
|
||||
BackgroundKind,
|
||||
core::{service_items::ServiceItem, slide::Slide},
|
||||
ui::text_svg,
|
||||
BackgroundKind,
|
||||
};
|
||||
|
||||
const REFERENCE_WIDTH: f32 = 1920.0;
|
||||
|
|
|
@ -290,7 +290,7 @@ impl TextSvg {
|
|||
self.font.name,
|
||||
self.font.size,
|
||||
self.fill, stroke, text);
|
||||
// debug!(?final_svg);
|
||||
debug!("starting...");
|
||||
let resvg_tree = Tree::from_str(
|
||||
&final_svg,
|
||||
&resvg::usvg::Options {
|
||||
|
@ -299,15 +299,17 @@ impl TextSvg {
|
|||
},
|
||||
)
|
||||
.expect("Woops mama");
|
||||
// debug!(?resvg_tree);
|
||||
debug!("parsed");
|
||||
let transform = tiny_skia::Transform::default();
|
||||
let mut pixmap =
|
||||
Pixmap::new(size.width as u32, size.height as u32)
|
||||
.expect("opops");
|
||||
resvg::render(&resvg_tree, transform, &mut pixmap.as_mut());
|
||||
// debug!(?pixmap);
|
||||
debug!("rendered");
|
||||
let handle = Handle::from_bytes(pixmap.take());
|
||||
self.handle = Some(handle);
|
||||
debug!("stored");
|
||||
self
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue