diff --git a/lib/providers/equipment_profile_provider.dart b/lib/providers/equipment_profile_provider.dart index 2a67161..d57019c 100644 --- a/lib/providers/equipment_profile_provider.dart +++ b/lib/providers/equipment_profile_provider.dart @@ -45,11 +45,27 @@ class EquipmentProfileProviderState extends State { }); } - void addProfile(EquipmentProfileData data) {} + /// Creates a default equipment profile + void addProfile() { + _profiles.add(const EquipmentProfileData( + id: 'default', + name: '', + apertureValues: apertureValues, + ndValues: ndValues, + shutterSpeedValues: shutterSpeedValues, + isoValues: isoValues, + )); + setState(() {}); + } - void updateProdile(EquipmentProfileData data) {} + void updateProdile(EquipmentProfileData data) { + // + } - void deleteProfile(EquipmentProfileData data) {} + void deleteProfile(EquipmentProfileData data) { + _profiles.remove(data); + setState(() {}); + } } class EquipmentProfiles extends InheritedWidget { diff --git a/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_section/widget_section_equipment_profile.dart b/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_section/widget_section_equipment_profile.dart index 2f761b4..5adf931 100644 --- a/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_section/widget_section_equipment_profile.dart +++ b/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_section/widget_section_equipment_profile.dart @@ -1,14 +1,18 @@ import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; -import 'package:lightmeter/generated/l10n.dart'; import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; import 'components/equipment_list_tiles/widget_list_tiles_equipments.dart'; class EquipmentListTilesSection extends StatefulWidget { final EquipmentProfileData data; + final VoidCallback onDelete; - const EquipmentListTilesSection({required this.data, super.key}); + const EquipmentListTilesSection({ + required this.data, + required this.onDelete, + super.key, + }); @override State createState() => _EquipmentListTilesSectionState(); @@ -63,7 +67,7 @@ class _EquipmentListTilesSectionState extends State { children: [ _collapseButton(), IconButton( - onPressed: () {}, + onPressed: widget.onDelete, icon: const Icon(Icons.delete), ), ], diff --git a/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart b/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart index 0e54985..2e32f3a 100644 --- a/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart +++ b/lib/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/screen_equipment_profile.dart @@ -37,6 +37,10 @@ class _EquipmentProfileScreenState extends State { itemCount: EquipmentProfiles.of(context)?.length ?? 0, itemBuilder: (_, index) => EquipmentListTilesSection( data: EquipmentProfiles.of(context)![index], + onDelete: () { + EquipmentProfileProvider.of(context) + .deleteProfile(EquipmentProfiles.of(context)![index]); + }, ), ), ),