indicate push/pull

This commit is contained in:
Vadim 2023-09-13 17:10:34 +02:00
parent 0d530b240b
commit f1d58e839d
5 changed files with 35 additions and 5 deletions

View file

@ -41,6 +41,8 @@
"meteringScreenFeatureFilmPicker": "Film picker",
"meteringScreenFeatureHistogram": "Histogram",
"film": "Film",
"filmPush": "Film (push)",
"filmPull": "Film (pull)",
"equipment": "Equipment",
"equipmentProfileName": "Equipment profile name",
"equipmentProfileNameHint": "Praktica MTL5B",

View file

@ -41,6 +41,8 @@
"meteringScreenFeatureFilmPicker": "Sélecteur de film",
"meteringScreenFeatureHistogram": "Histogramme",
"film": "Pellicule",
"filmPush": "Pellicule (push)",
"filmPull": "Pellicule (pull)",
"equipment": "Équipement",
"equipmentProfileName": "Nom du profil de l'équipement",
"tapToAdd": "Appuie pour ajouter",

View file

@ -41,6 +41,8 @@
"meteringScreenFeatureFilmPicker": "Выбор пленки",
"meteringScreenFeatureHistogram": "Гистограмма",
"film": "Пленка",
"filmPush": "Пленка (push)",
"filmPull": "Пленка (pull)",
"equipment": "Оборудование",
"equipmentProfileName": "Название профиля",
"equipmentProfileNameHint": "Praktica MTL5B",
@ -88,4 +90,4 @@
}
}
}
}
}

View file

@ -31,7 +31,7 @@
"thirdStops": "1/3",
"calibration": "校准",
"calibrationMessage": "此应用测量读数的准确性完全取决于设备的硬件。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。",
"calibrationMessageCameraOnly": "此应用程序测量读数的准确性完全取决于设备的后置摄像头。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。",
"calibrationMessageCameraOnly": "此应用程序测量读数的准确s性完全取决于设备的后置摄像头。因此,请考虑测试此应用并手动设置 EV 校准,以获得准确的测量结果。",
"camera": "摄像头",
"lightSensor": "光传感器",
"meteringScreenLayout": "布局",
@ -41,6 +41,8 @@
"meteringScreenFeatureFilmPicker": "胶片选择",
"meteringScreenFeatureHistogram": "直方图",
"film": "胶片",
"filmPush": "胶片 (push)",
"filmPull": "胶片 (pull)",
"equipment": "设备",
"equipmentProfileName": "设备配置名称",
"equipmentProfileNameHint": "Praktica MTL5B",

View file

@ -61,7 +61,7 @@ class ReadingsContainer extends StatelessWidget {
context,
MeteringScreenLayoutFeature.filmPicker,
)) ...[
const _FilmPicker(),
_FilmPicker(selectedIso: iso),
const _InnerPadding(),
],
Row(
@ -117,7 +117,9 @@ class _EquipmentProfilePicker extends StatelessWidget {
}
class _FilmPicker extends StatelessWidget {
const _FilmPicker();
final IsoValue selectedIso;
const _FilmPicker({required this.selectedIso});
@override
Widget build(BuildContext context) {
@ -130,7 +132,7 @@ class _FilmPicker extends StatelessWidget {
onChanged: FilmsProvider.of(context).setFilm,
closedChild: ReadingValueContainer.singleValue(
value: ReadingValue(
label: S.of(context).film,
label: _label(context),
value: Films.selectedOf(context).name.isEmpty
? S.of(context).none
: Films.selectedOf(context).name,
@ -138,6 +140,26 @@ class _FilmPicker extends StatelessWidget {
),
);
}
String _label(BuildContext context) {
if (Films.selectedOf(context) == const Film.other() ||
Films.selectedOf(context).iso == selectedIso.value) {
return S.of(context).film;
}
final evDiff = IsoValue(
Films.selectedOf(context).iso,
StopType.full,
).difference(selectedIso);
if (evDiff > 0) {
return S.of(context).filmPush;
} else if (evDiff < 0) {
return S.of(context).filmPull;
} else {
return S.of(context).film;
}
}
}
class _IsoValuePicker extends StatelessWidget {