From 573d93fa3b330ffca3ea61563fb3c0fd0ada2806 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Tue, 27 Jan 2026 09:59:02 -0600 Subject: [PATCH] attempting to make songs uses verses correctly when saving --- src/core/songs.rs | 22 +++++----------------- src/ui/song_editor.rs | 2 +- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/core/songs.rs b/src/core/songs.rs index eb44830..f2b163b 100644 --- a/src/core/songs.rs +++ b/src/core/songs.rs @@ -220,7 +220,7 @@ const VERSE_KEYWORDS: [&str; 24] = [ impl FromRow<'_, SqliteRow> for Song { fn from_row(row: &SqliteRow) -> sqlx::Result { - let Some((verses, verse_map)) = + let Some((mut verses, verse_map)) = lyrics_to_verse(row.try_get(8)?).ok() else { return Err(sqlx::Error::ColumnDecode { @@ -232,12 +232,12 @@ impl FromRow<'_, SqliteRow> for Song { }); }; - let mut verses = vec![]; - let verse_order: String = { + let verse_order: Vec = { let vo: &str = row.try_get(0)?; if let Ok(verse_order_vec) = ron::de::from_str::>(vo) { + debug!(?verse_order_vec); verses = verse_order_vec; vo.split(' ') .map(std::string::ToString::to_string) @@ -753,7 +753,7 @@ impl Song { } if let Some(raw_lyrics) = self.lyrics.clone() { let raw_lyrics = raw_lyrics.as_str(); - let verse_order = self.verse_order.clone(); + let verse_order = self.verses.clone(); let mut lyric_map = HashMap::new(); let mut verse_title = String::new(); @@ -775,19 +775,7 @@ impl Song { lyric_map.insert(verse_title, lyric); for verse in verse_order.unwrap_or_default() { - let mut verse_name = ""; - for word in VERSE_KEYWORDS { - let end_verse = - verse.get(1..2).unwrap_or_default(); - let beg_verse = - verse.get(0..1).unwrap_or_default(); - if word.starts_with(beg_verse) - && word.ends_with(end_verse) - { - verse_name = word; - continue; - } - } + let verse_name = &verse.get_name(); if let Some(lyric) = lyric_map.get(verse_name) { if lyric.contains("\n\n") { let split_lyrics: Vec<&str> = diff --git a/src/ui/song_editor.rs b/src/ui/song_editor.rs index 133582d..67b1fd7 100644 --- a/src/ui/song_editor.rs +++ b/src/ui/song_editor.rs @@ -697,7 +697,7 @@ impl SongEditor { .direction(Direction::Horizontal(Scrollbar::new())) .spacing(space_s), horizontal_space(), - verse_chips_edit_toggle.width(Length::Fixed(50.0)) + verse_chips_edit_toggle ]) .padding(space_s) .width(Length::Fill)