mirror of
https://github.com/johrpan/musicus_mobile.git
synced 2025-10-26 18:57:25 +01:00
Work editor: Initialize parts
This commit is contained in:
parent
71d51596ae
commit
05574c78b6
1 changed files with 35 additions and 5 deletions
|
|
@ -10,9 +10,16 @@ class PartData {
|
||||||
|
|
||||||
int level;
|
int level;
|
||||||
Person composer;
|
Person composer;
|
||||||
List<Instrument> instruments = [];
|
List<Instrument> instruments;
|
||||||
|
|
||||||
PartData(this.level);
|
PartData({
|
||||||
|
String title,
|
||||||
|
this.level = 0,
|
||||||
|
this.composer,
|
||||||
|
this.instruments = const [],
|
||||||
|
}) {
|
||||||
|
titleController.text = title ?? '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WorkProperties extends StatelessWidget {
|
class WorkProperties extends StatelessWidget {
|
||||||
|
|
@ -213,7 +220,6 @@ class _WorkEditorState extends State<WorkEditor> {
|
||||||
|
|
||||||
backend = Backend.of(context);
|
backend = Backend.of(context);
|
||||||
|
|
||||||
// TODO: Initialize parts
|
|
||||||
if (widget.work != null) {
|
if (widget.work != null) {
|
||||||
if (widget.work.composer != null) {
|
if (widget.work.composer != null) {
|
||||||
() async {
|
() async {
|
||||||
|
|
@ -240,6 +246,30 @@ class _WorkEditorState extends State<WorkEditor> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}();
|
}();
|
||||||
|
|
||||||
|
() async {
|
||||||
|
final dbParts = await backend.db.workParts(widget.work.id).get();
|
||||||
|
for (final dbPart in dbParts) {
|
||||||
|
final partInstruments =
|
||||||
|
await backend.db.instrumentsByWork(dbPart.id).get();
|
||||||
|
|
||||||
|
Person partComposer;
|
||||||
|
|
||||||
|
if (dbPart.composer != null) {
|
||||||
|
partComposer =
|
||||||
|
await backend.db.personById(widget.work.composer).getSingle();
|
||||||
|
}
|
||||||
|
|
||||||
|
setState(() {
|
||||||
|
parts.add(PartData(
|
||||||
|
title: dbPart.title,
|
||||||
|
composer: partComposer,
|
||||||
|
level: dbPart.partLevel,
|
||||||
|
instruments: partInstruments,
|
||||||
|
));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -267,7 +297,7 @@ class _WorkEditorState extends State<WorkEditor> {
|
||||||
onMore: () {},
|
onMore: () {},
|
||||||
onAdd: () {
|
onAdd: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
parts.insert(i + 1, PartData(part.level + 1));
|
parts.insert(i + 1, PartData(level: part.level + 1));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
onDelete: () {
|
onDelete: () {
|
||||||
|
|
@ -378,7 +408,7 @@ class _WorkEditorState extends State<WorkEditor> {
|
||||||
label: Text('Add part'),
|
label: Text('Add part'),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
parts.add(PartData(0));
|
parts.add(PartData(level: 0));
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue