💄 Make port list scrollable

This commit is contained in:
2024-07-03 10:24:25 +02:00
parent 639527a49a
commit eae7440bb3

View File

@ -44,51 +44,53 @@ class _PortsTabState extends State<PortsTab> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Padding( return SingleChildScrollView(
padding: const EdgeInsets.all(8.0), child: Padding(
child: Column( padding: const EdgeInsets.all(8.0),
children: [...widget.mixerState.inputs, ...widget.mixerState.outputs] child: Column(
.indexed children: [...widget.mixerState.inputs, ...widget.mixerState.outputs]
.map( .indexed
(elem) => Card( .map(
child: ListTile( (elem) => Card(
leading: (elem.$1 >= widget.mixerState.inputs.length) child: ListTile(
? const Icon(Icons.speaker_outlined) leading: (elem.$1 >= widget.mixerState.inputs.length)
: const Icon(Icons.mic_none_outlined), ? const Icon(Icons.speaker_outlined)
title: Text(elem.$2.name), : const Icon(Icons.mic_none_outlined),
subtitle: Text('Backend: ${elem.$2.properties.backend}'), title: Text(elem.$2.name),
trailing: PopupMenuButton<MenuAction>( subtitle: Text('Backend: ${elem.$2.properties.backend}'),
tooltip: "More Options", trailing: PopupMenuButton<MenuAction>(
onSelected: (MenuAction item) { tooltip: "More Options",
switch (item) { onSelected: (MenuAction item) {
case MenuAction.edit: switch (item) {
onEditPort(elem.$2); case MenuAction.edit:
case MenuAction.delete: onEditPort(elem.$2);
onDeletePort(elem.$2); case MenuAction.delete:
} onDeletePort(elem.$2);
}, }
itemBuilder: (BuildContext context) => },
<PopupMenuEntry<MenuAction>>[ itemBuilder: (BuildContext context) =>
const PopupMenuItem<MenuAction>( <PopupMenuEntry<MenuAction>>[
value: MenuAction.edit, const PopupMenuItem<MenuAction>(
child: ListTile( value: MenuAction.edit,
leading: Icon(Icons.mode_edit), child: ListTile(
title: Text('Edit'), leading: Icon(Icons.mode_edit),
title: Text('Edit'),
),
), ),
), const PopupMenuItem<MenuAction>(
const PopupMenuItem<MenuAction>( value: MenuAction.delete,
value: MenuAction.delete, child: ListTile(
child: ListTile( leading: Icon(Icons.delete),
leading: Icon(Icons.delete), title: Text('Delete'),
title: Text('Delete'), ),
), ),
), ],
], ),
), ),
), ),
), )
) .toList(),
.toList(), ),
), ),
); );
} }