diff --git a/src/core/songs.rs b/src/core/songs.rs index 6813498..8eab49f 100644 --- a/src/core/songs.rs +++ b/src/core/songs.rs @@ -710,7 +710,12 @@ impl Song { pub fn get_lyric(&self, verse: &VerseName) -> Option { self.verse_map .as_ref() - .map(|verse_map| verse_map.get(verse).cloned()) + .map(|verse_map| { + verse_map + .get(verse) + .cloned() + .map(|lyric| lyric.trim_end().to_string()) + }) .flatten() } @@ -810,15 +815,10 @@ impl Song { verse: VerseName, lyric: String, ) { + self.set_lyrics(&verse, lyric); if let Some(verses) = self.verses.as_mut() { if let Some(old_verse) = verses.get_mut(index) { - if let Some(verse_map) = self.verse_map.as_mut() { - if let Some(old_lyric) = verse_map.get_mut(&verse) - { - *old_lyric = lyric; - *old_verse = verse; - } - } + *old_verse = verse; } } diff --git a/src/ui/song_editor.rs b/src/ui/song_editor.rs index 797dd79..1e9ff6d 100644 --- a/src/ui/song_editor.rs +++ b/src/ui/song_editor.rs @@ -1,28 +1,22 @@ use std::{ - cell::RefCell, - fs::File, io::{self, Read}, path::PathBuf, - rc::Rc, - sync::{Arc, LazyLock}, + sync::Arc, }; use cosmic::{ Apply, Element, Task, dialog::file_chooser::{FileFilter, open::Dialog}, iced::{ - Background as ContainerBackground, Border, Color, Font, - Length, Padding, Vector, alignment::Vertical, - clipboard::mime::AsMimeTypes, color, font, + Background as ContainerBackground, Border, Color, Length, + Padding, Vector, alignment::Vertical, color, }, iced_core::widget::tree, iced_wgpu::graphics::text::cosmic_text::fontdb, iced_widget::{ column, row, scrollable::{Direction, Scrollbar}, - stack, - text_input::{Icon, Side}, - vertical_rule, + stack, vertical_rule, }, theme, widget::{ @@ -71,7 +65,7 @@ pub struct SongEditor { verse_order: String, pub lyrics: text_editor::Content, editing: bool, - editing_verses_order: bool, + editing_verse_order: bool, background: Option, video: Option