mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-22 07:20:39 +00:00
set zoom on equipment profile change
This commit is contained in:
parent
fe98bf163f
commit
153cb9ca51
4 changed files with 25 additions and 8 deletions
|
@ -1,7 +1,9 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:lightmeter/providers/equipment_profile_provider.dart';
|
||||
import 'package:lightmeter/screens/shared/ruler_slider/widget_slider_ruler.dart';
|
||||
import 'package:lightmeter/utils/double_to_zoom.dart';
|
||||
|
||||
class ZoomSlider extends StatelessWidget {
|
||||
class ZoomSlider extends StatefulWidget {
|
||||
final RangeValues range;
|
||||
final double value;
|
||||
final ValueChanged<double> onChanged;
|
||||
|
@ -13,16 +15,27 @@ class ZoomSlider extends StatelessWidget {
|
|||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
State<ZoomSlider> createState() => _ZoomSliderState();
|
||||
}
|
||||
|
||||
class _ZoomSliderState extends State<ZoomSlider> {
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
super.didChangeDependencies();
|
||||
widget.onChanged(EquipmentProfiles.selectedOf(context).lensZoom);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return RulerSlider(
|
||||
range: range,
|
||||
value: value,
|
||||
onChanged: onChanged,
|
||||
range: widget.range,
|
||||
value: widget.value,
|
||||
onChanged: widget.onChanged,
|
||||
icon: Icons.search,
|
||||
defaultValue: range.start,
|
||||
defaultValue: EquipmentProfiles.selectedOf(context).lensZoom,
|
||||
rulerValueAdapter: (value) => value.toStringAsFixed(0),
|
||||
valueAdapter: (value) => 'x${value.toStringAsFixed(2)}',
|
||||
valueAdapter: (value) => value.toZoom(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ class SliderPickerListTile extends StatelessWidget {
|
|||
return ListTile(
|
||||
leading: Icon(icon),
|
||||
title: Text(title),
|
||||
trailing: Text(value.toString()),
|
||||
trailing: Text(valueAdapter(context, value)),
|
||||
onTap: () {
|
||||
showDialog<double>(
|
||||
context: context,
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:lightmeter/screens/settings/components/metering/components/equip
|
|||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_container/components/range_picker_list_tile/widget_list_tile_range_picker.dart';
|
||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_container/components/slider_picker_list_tile/widget_list_tile_slider_picker.dart';
|
||||
import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/components/equipment_profile_screen/components/equipment_profile_name_dialog/widget_dialog_equipment_profile_name.dart';
|
||||
import 'package:lightmeter/utils/double_to_zoom.dart';
|
||||
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
||||
|
||||
class EquipmentProfileContainer extends StatefulWidget {
|
||||
|
@ -276,7 +277,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
|
|||
value: equipmentData.lensZoom,
|
||||
range: const RangeValues(1, 7),
|
||||
onChanged: onLensZoomChanged,
|
||||
valueAdapter: (context, value) => 'x${value.toStringAsFixed(2)}',
|
||||
valueAdapter: (_, value) => value.toZoom(),
|
||||
),
|
||||
ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: Dimens.paddingM),
|
||||
|
|
3
lib/utils/double_to_zoom.dart
Normal file
3
lib/utils/double_to_zoom.dart
Normal file
|
@ -0,0 +1,3 @@
|
|||
extension DoubleToZoom on double {
|
||||
String toZoom() => 'x${toStringAsFixed(2)}';
|
||||
}
|
Loading…
Reference in a new issue