diff --git a/justfile b/justfile index de77d95..caf42a3 100644 --- a/justfile +++ b/justfile @@ -6,13 +6,13 @@ default: build: RUST_LOG=debug cargo build run: - RUST_LOG=debug cargo run --release -- {{ui}} {{file}} + RUST_LOG=debug cargo run -- {{ui}} {{file}} clean: RUST_LOG=debug cargo clean test: RUST_LOG=debug cargo test --benches --tests --all-features -- --nocapture profile: - cargo flamegraph --image-width 4000 -- {{ui}} {{file}} + cargo flamegraph --image-width 8000 -- {{ui}} {{file}} alias r := run alias c := clean diff --git a/src/main.rs b/src/main.rs index 91ae9ee..c1e4db2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -288,22 +288,6 @@ impl cosmic::Application for App { } fn header_start(&self) -> Vec> { - vec![] - } - fn header_center(&self) -> Vec> { - vec![search_input("Search...", "") - .on_input(|_| Message::None) - .on_submit(|_| Message::None) - .width(Length::Fill) - .into()] - } - fn header_end(&self) -> Vec> { - // let editor_toggle = toggler(self.editor_mode.is_some()) - // .label("Editor") - // .spacing(10) - // .width(Length::Shrink) - // .on_toggle(Message::EditorToggle); - let presenter_window = self.windows.get(1); let text = if self.presentation_open { text::body("End Presentation") @@ -370,6 +354,30 @@ impl cosmic::Application for App { ) .into(), horizontal_space().width(HEADER_SPACE).into(), + ] + } + fn header_center(&self) -> Vec> { + vec![search_input("Search...", "") + .on_input(|_| Message::None) + .on_submit(|_| Message::None) + .width(300) + .into()] + } + fn header_end(&self) -> Vec> { + // let editor_toggle = toggler(self.editor_mode.is_some()) + // .label("Editor") + // .spacing(10) + // .width(Length::Shrink) + // .on_toggle(Message::EditorToggle); + + let presenter_window = self.windows.get(1); + let text = if self.presentation_open { + text::body("End Presentation") + } else { + text::body("Present") + }; + + vec![ tooltip( button::custom( row!( diff --git a/src/ui/presenter.rs b/src/ui/presenter.rs index 12a7c13..1903642 100644 --- a/src/ui/presenter.rs +++ b/src/ui/presenter.rs @@ -4,6 +4,7 @@ use std::{fs::File, io::BufReader, path::PathBuf, sync::Arc}; use cosmic::{ iced::{ alignment::Horizontal, + border, font::{Family, Stretch, Style, Weight}, Background, Border, Color, ContentFit, Font, Length, Shadow, Vector, @@ -551,12 +552,11 @@ pub(crate) fn slide_view( // .text(&slide_text) // .fill("#fff") // .shadow(text_svg::shadow(2, 2, 5, "#000000")) - // .stroke(text_svg::stroke(1, "#000")) + // .stroke(text_svg::stroke(3, "#000")) // .font(font) // .view() // .map(|m| Message::None); - // let text = text!("{}", &slide_text); // text widget based let lines = slide_text.lines(); let text: Vec> = lines @@ -566,14 +566,15 @@ pub(crate) fn slide_view( Background::Color(Color::BLACK) .scale_alpha(0.4), ) - .padding(1)]) + .border(border::rounded(10)) + .padding(10)]) .size(font_size) .font(font) .center() .into() }) .collect(); - let text = Column::with_children(text).spacing(6); + let text = Column::with_children(text).spacing(26); //Next let text_container = Container::new(text) diff --git a/src/ui/text_svg.rs b/src/ui/text_svg.rs index 4401004..6dfa92e 100644 --- a/src/ui/text_svg.rs +++ b/src/ui/text_svg.rs @@ -218,7 +218,7 @@ impl TextSvg { }; let stroke = if let Some(stroke) = &self.stroke { format!( - "stroke=\"{}\" stroke-width=\"{}\"", + "stroke=\"{}\" stroke-width=\"{}px\" stroke-linejoin=\"arcs\" paint-order=\"stroke\"", stroke.color, stroke.size ) } else { @@ -249,17 +249,16 @@ impl TextSvg { self.fill, stroke, text); // debug!(final_svg); - lazy(self.clone(), move |_s| Svg::new(Handle::from_memory( +Svg::new(Handle::from_memory( Box::leak(::clone(&final_svg).into_boxed_str()).as_bytes(), )) .width(Length::Fill) - .height(Length::Fill)) + .height(Length::Fill) .into() })).width(Length::Fill).height(Length::Fill).into() } fn text_spans(&self) -> Vec { - let total_lines = self.text.lines().count(); self.text .lines() .enumerate() diff --git a/test_presentation.lisp b/test_presentation.lisp index ae1b5a3..da2c32a 100644 --- a/test_presentation.lisp +++ b/test_presentation.lisp @@ -4,7 +4,7 @@ (slide (video :source "~/vids/The Basics of Hanging Drywall.mkv" :fit contain)) (slide (video :source "~/vids/Ladybird Is The Future Of Web Browsers.webm" :fit contain)) (song :id 7 :author "North Point Worship" - :font "Quicksand Bold" :font-size 30 + :font "Quicksand Bold" :font-size 60 :shadow "" :stroke "" :title "Death Was Arrested" :background (image :source "file:///home/chris/nc/tfc/openlp/CMG - Bright Mountains 01.jpg" :fit cover)