mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-26 03:47:23 +01:00
tracks editor: Autofill parts
This commit is contained in:
parent
53680df13d
commit
902ad97225
1 changed files with 21 additions and 2 deletions
|
|
@ -1,6 +1,6 @@
|
|||
use super::tracks_editor_track_row::{PathType, TracksEditorTrackData};
|
||||
use crate::{
|
||||
db::models::Recording,
|
||||
db::models::{Recording, Work},
|
||||
editor::{
|
||||
recording_editor::MusicusRecordingEditor,
|
||||
recording_selector_popover::RecordingSelectorPopover,
|
||||
|
|
@ -224,12 +224,31 @@ impl TracksEditor {
|
|||
|
||||
fn add_file(&self, path: PathBuf) {
|
||||
if let Some(recording) = &*self.imp().recording.borrow() {
|
||||
let parts_taken = {
|
||||
self.imp()
|
||||
.track_rows
|
||||
.borrow()
|
||||
.iter()
|
||||
.map(|t| t.track_data().parts.clone())
|
||||
.flatten()
|
||||
.collect::<Vec<Work>>()
|
||||
};
|
||||
|
||||
let next_part = recording
|
||||
.work
|
||||
.parts
|
||||
.iter()
|
||||
.find(|p| !parts_taken.contains(p))
|
||||
.into_iter()
|
||||
.cloned()
|
||||
.collect::<Vec<Work>>();
|
||||
|
||||
self.add_track_row(
|
||||
recording.to_owned(),
|
||||
TracksEditorTrackData {
|
||||
track_id: None,
|
||||
path: PathType::System(path),
|
||||
parts: Vec::new(),
|
||||
parts: next_part,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue