mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-26 11:47:25 +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 super::tracks_editor_track_row::{PathType, TracksEditorTrackData};
|
||||||
use crate::{
|
use crate::{
|
||||||
db::models::Recording,
|
db::models::{Recording, Work},
|
||||||
editor::{
|
editor::{
|
||||||
recording_editor::MusicusRecordingEditor,
|
recording_editor::MusicusRecordingEditor,
|
||||||
recording_selector_popover::RecordingSelectorPopover,
|
recording_selector_popover::RecordingSelectorPopover,
|
||||||
|
|
@ -224,12 +224,31 @@ impl TracksEditor {
|
||||||
|
|
||||||
fn add_file(&self, path: PathBuf) {
|
fn add_file(&self, path: PathBuf) {
|
||||||
if let Some(recording) = &*self.imp().recording.borrow() {
|
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(
|
self.add_track_row(
|
||||||
recording.to_owned(),
|
recording.to_owned(),
|
||||||
TracksEditorTrackData {
|
TracksEditorTrackData {
|
||||||
track_id: None,
|
track_id: None,
|
||||||
path: PathType::System(path),
|
path: PathType::System(path),
|
||||||
parts: Vec::new(),
|
parts: next_part,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue