making songs almost more updatable....
This commit is contained in:
parent
7137cf715d
commit
4fe68236ea
3 changed files with 37 additions and 2 deletions
|
@ -9,6 +9,7 @@ use cosmic::{
|
|||
},
|
||||
Element, Task,
|
||||
};
|
||||
use miette::{miette, Result};
|
||||
use tracing::debug;
|
||||
|
||||
use crate::core::{
|
||||
|
@ -32,6 +33,7 @@ pub(crate) struct Library {
|
|||
selected_item: Option<(LibraryKind, i32)>,
|
||||
hovered_item: Option<(LibraryKind, i32)>,
|
||||
dragged_item: Option<(LibraryKind, i32)>,
|
||||
editing_item: Option<(LibraryKind, i32)>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
|
@ -62,6 +64,7 @@ impl Library {
|
|||
selected_item: None,
|
||||
hovered_item: None,
|
||||
dragged_item: None,
|
||||
editing_item: None,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -337,6 +340,23 @@ impl Library {
|
|||
})
|
||||
.into()
|
||||
}
|
||||
|
||||
pub(crate) fn update_song(&mut self, song: Song) -> Result<()> {
|
||||
let Some((kind, index)) = self.editing_item else {
|
||||
return Err(miette!("Not editing an item"));
|
||||
};
|
||||
|
||||
if kind != LibraryKind::Song {
|
||||
return Err(miette!("Not editing a song item"));
|
||||
}
|
||||
|
||||
if let Some(_) = self.song_library.items.get(index as usize) {
|
||||
self.song_library.update_item(song, index);
|
||||
Ok(())
|
||||
} else {
|
||||
Err(miette!("Song not found"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn elide_text(text: String, width: f32) -> String {
|
||||
|
|
|
@ -156,9 +156,9 @@ impl SongEditor {
|
|||
Task::none()
|
||||
}
|
||||
Message::ChangeTitle(title) => {
|
||||
debug!(title);
|
||||
self.title = title.clone();
|
||||
if let Some(mut song) = self.song.clone() {
|
||||
debug!(title);
|
||||
song.title = title;
|
||||
self.update(Message::UpdateSong(song))
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue