diff --git a/lib/application.dart b/lib/application.dart index 87387c2..0aa812b 100644 --- a/lib/application.dart +++ b/lib/application.dart @@ -12,13 +12,12 @@ import 'package:lightmeter/screens/equipment_profiles/screen_equipment_profiles. import 'package:lightmeter/screens/film_edit/flow_film_edit.dart'; import 'package:lightmeter/screens/films/screen_films.dart'; import 'package:lightmeter/screens/lightmeter_pro/screen_lightmeter_pro.dart'; -import 'package:lightmeter/screens/logbook/screen_logbook.dart'; import 'package:lightmeter/screens/logbook_photo_edit/flow_logbook_photo_edit.dart'; import 'package:lightmeter/screens/metering/flow_metering.dart'; -import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; import 'package:lightmeter/screens/settings/flow_settings.dart'; import 'package:lightmeter/screens/shared/release_notes_dialog/flow_dialog_release_notes.dart'; import 'package:lightmeter/screens/timer/flow_timer.dart'; +import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart'; class Application extends StatelessWidget { const Application({super.key}); @@ -54,7 +53,7 @@ class Application extends StatelessWidget { routes: { NavigationRoutes.meteringScreen.name: (_) => const ReleaseNotesFlow(child: MeteringFlow()), NavigationRoutes.settingsScreen.name: (_) => const SettingsFlow(), - NavigationRoutes.equipmentProfilesListScreen.name: (_) => const LogbookScreen(), + NavigationRoutes.equipmentProfilesListScreen.name: (_) => const EquipmentProfilesScreen(), NavigationRoutes.equipmentProfileEditScreen.name: (context) => EquipmentProfileEditFlow(args: context.routeArgs()), NavigationRoutes.filmsListScreen.name: (_) => const FilmsScreen(), diff --git a/lib/l10n/intl_de.arb b/lib/l10n/intl_de.arb index 5812d14..dc736e1 100644 --- a/lib/l10n/intl_de.arb +++ b/lib/l10n/intl_de.arb @@ -173,5 +173,6 @@ "note": "Notiz", "notSet": "Nicht gesetzt", "location": "Standort", - "noMapsAppFound": "Keine Kartenanwendung gefunden." + "noMapsAppFound": "Keine Kartenanwendung gefunden.", + "logbook": "Fototagebuch" } \ No newline at end of file diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 8e0e718..5afffc0 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -173,5 +173,6 @@ "note": "Note", "notSet": "Not set", "location": "Location", - "noMapsAppFound": "No maps application found." + "noMapsAppFound": "No maps application found.", + "logbook": "Logbook" } \ No newline at end of file diff --git a/lib/l10n/intl_fr.arb b/lib/l10n/intl_fr.arb index 9d50c60..4c01ad1 100644 --- a/lib/l10n/intl_fr.arb +++ b/lib/l10n/intl_fr.arb @@ -32,7 +32,7 @@ "calibration": "Calibration", "calibrationMessage": "La précision des lectures mesurées par cette application dépend entièrement du matériel de l'appareil. Par conséquent, envisagez de tester cette application et de configurer les valeurs d'étalonnage des EV qui vous donneront les résultats de mesure souhaités.", "calibrationMessageCameraOnly": "La précision des lectures mesurées par cette application dépend entièrement de la caméra arrière de l'appareil. Par conséquent, envisagez de tester cette application et de configurer une valeur d'étalonnage EV qui vous donnera les résultats de mesure souhaités.", - "camera": "Caméra", + "camera": "Appareil photo", "lightSensor": "Capteur de lumière", "showEv100": "Montrer EV\u2081\u2080\u2080", "meteringScreenLayout": "Disposition de l'écran de mesure", @@ -164,5 +164,6 @@ "note": "Note", "notSet": "Non défini", "location": "Emplacement", - "noMapsAppFound": "Aucune application de cartes trouvée." + "noMapsAppFound": "Aucune application de cartes trouvée.", + "logbook": "Carnet photo" } \ No newline at end of file diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 06d0e34..4458982 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -163,5 +163,6 @@ "note": "Заметка", "notSet": "Не задано", "location": "Местоположение", - "noMapsAppFound": "Приложение карт не найдено." + "noMapsAppFound": "Приложение карт не найдено.", + "logbook": "Фотожурнал" } \ No newline at end of file diff --git a/lib/l10n/intl_zh.arb b/lib/l10n/intl_zh.arb index c35e01e..e1da9f4 100644 --- a/lib/l10n/intl_zh.arb +++ b/lib/l10n/intl_zh.arb @@ -32,7 +32,7 @@ "calibration": "校准", "calibrationMessage": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。", "calibrationMessageCameraOnly": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。", - "camera": "摄像头", + "camera": "相机", "lightSensor": "光线传感器", "showEv100": "显示 EV\u2081\u2080\u2080", "meteringScreenLayout": "布局", @@ -161,5 +161,6 @@ "note": "备注", "notSet": "未设置", "location": "位置", - "noMapsAppFound": "未找到地图应用程序。" + "noMapsAppFound": "未找到地图应用程序。", + "logbook": "拍照日志" } \ No newline at end of file diff --git a/lib/screens/logbook/screen_logbook.dart b/lib/screens/logbook/screen_logbook.dart index 232b48f..28544ff 100644 --- a/lib/screens/logbook/screen_logbook.dart +++ b/lib/screens/logbook/screen_logbook.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; +import 'package:lightmeter/generated/l10n.dart'; import 'package:lightmeter/navigation/routes.dart'; import 'package:lightmeter/platform_config.dart'; import 'package:lightmeter/providers/logbook_photos_provider.dart'; @@ -19,7 +20,7 @@ class _LogbookScreenState extends State with SingleTickerProvider @override Widget build(BuildContext context) { return SliverScreen( - title: Text("Logbook"), + title: Text(S.of(context).logbook), slivers: [ _PicturesGridBuilder( values: LogbookPhotos.of(context), diff --git a/lib/screens/logbook_photo_edit/bloc_logbook_photo_edit.dart b/lib/screens/logbook_photo_edit/bloc_logbook_photo_edit.dart index 5993b4a..ee08e3c 100644 --- a/lib/screens/logbook_photo_edit/bloc_logbook_photo_edit.dart +++ b/lib/screens/logbook_photo_edit/bloc_logbook_photo_edit.dart @@ -46,7 +46,7 @@ class LogbookPhotoEditBloc extends Bloc _onApertureChanged(LogbookPhotoApertureChangedEvent event, Emitter emit) async { - // For now, we'll just update the state since LogbookPhoto doesn't support aperture + _newPhoto = _newPhoto.copyWith(apertureValue: event.aperture); emit( state.copyWith( aperture: event.aperture, @@ -56,7 +56,7 @@ class LogbookPhotoEditBloc extends Bloc _onShutterSpeedChanged(LogbookPhotoShutterSpeedChangedEvent event, Emitter emit) async { - // For now, we'll just update the state since LogbookPhoto doesn't support shutterSpeed + _newPhoto = _newPhoto.copyWith(shutterSpeedValue: event.shutterSpeed); emit( state.copyWith( shutterSpeed: event.shutterSpeed, diff --git a/lib/screens/settings/components/metering/components/camera_features/widget_list_tile_camera_features.dart b/lib/screens/settings/components/camera/camera_features/widget_list_tile_camera_features.dart similarity index 100% rename from lib/screens/settings/components/metering/components/camera_features/widget_list_tile_camera_features.dart rename to lib/screens/settings/components/camera/camera_features/widget_list_tile_camera_features.dart diff --git a/lib/screens/settings/components/camera/logbook/widget_list_tile_logbook.dart b/lib/screens/settings/components/camera/logbook/widget_list_tile_logbook.dart new file mode 100644 index 0000000..56589dc --- /dev/null +++ b/lib/screens/settings/components/camera/logbook/widget_list_tile_logbook.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:lightmeter/generated/l10n.dart'; +import 'package:lightmeter/screens/logbook/screen_logbook.dart'; + +class LogbookListTile extends StatelessWidget { + const LogbookListTile({super.key}); + + @override + Widget build(BuildContext context) { + return ListTile( + leading: const Icon(Icons.book_outlined), + title: Text(S.of(context).logbook), + onTap: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (_) => const LogbookScreen()), + ); + }, + ); + } +} diff --git a/lib/screens/settings/components/camera/widget_settings_section_camera.dart b/lib/screens/settings/components/camera/widget_settings_section_camera.dart new file mode 100644 index 0000000..8aa33fa --- /dev/null +++ b/lib/screens/settings/components/camera/widget_settings_section_camera.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; +import 'package:lightmeter/generated/l10n.dart'; +import 'package:lightmeter/screens/settings/components/camera/camera_features/widget_list_tile_camera_features.dart'; +import 'package:lightmeter/screens/settings/components/camera/logbook/widget_list_tile_logbook.dart'; +import 'package:lightmeter/screens/settings/components/shared/settings_section/widget_settings_section.dart'; + +class CameraSettingsSection extends StatelessWidget { + const CameraSettingsSection({super.key}); + + @override + Widget build(BuildContext context) { + return SettingsSection( + title: S.of(context).camera, + children: const [ + LogbookListTile(), + CameraFeaturesListTile(), + ], + ); + } +} diff --git a/lib/screens/settings/components/metering/widget_settings_section_metering.dart b/lib/screens/settings/components/metering/widget_settings_section_metering.dart index becf531..f81e238 100644 --- a/lib/screens/settings/components/metering/widget_settings_section_metering.dart +++ b/lib/screens/settings/components/metering/widget_settings_section_metering.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:lightmeter/generated/l10n.dart'; import 'package:lightmeter/screens/settings/components/metering/components/calibration/widget_list_tile_calibration.dart'; -import 'package:lightmeter/screens/settings/components/metering/components/camera_features/widget_list_tile_camera_features.dart'; import 'package:lightmeter/screens/settings/components/metering/components/equipment_profiles/widget_list_tile_equipment_profiles.dart'; import 'package:lightmeter/screens/settings/components/metering/components/films/widget_list_tile_films.dart'; import 'package:lightmeter/screens/settings/components/metering/components/fractional_stops/widget_list_tile_fractional_stops.dart'; @@ -23,7 +22,6 @@ class MeteringSettingsSection extends StatelessWidget { MeteringScreenLayoutListTile(), EquipmentProfilesListTile(), FilmsListTile(), - CameraFeaturesListTile(), ], ); } diff --git a/lib/screens/settings/screen_settings.dart b/lib/screens/settings/screen_settings.dart index b153428..1a8eb8d 100644 --- a/lib/screens/settings/screen_settings.dart +++ b/lib/screens/settings/screen_settings.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:lightmeter/generated/l10n.dart'; import 'package:lightmeter/screens/settings/components/about/widget_settings_section_about.dart'; +import 'package:lightmeter/screens/settings/components/camera/widget_settings_section_camera.dart'; import 'package:lightmeter/screens/settings/components/general/widget_settings_section_general.dart'; import 'package:lightmeter/screens/settings/components/lightmeter_pro/widget_settings_section_lightmeter_pro.dart'; import 'package:lightmeter/screens/settings/components/metering/widget_settings_section_metering.dart'; @@ -40,6 +41,7 @@ class _SettingsScreenState extends State { [ if (!context.isPro) const LightmeterProSettingsSection(), const MeteringSettingsSection(), + const CameraSettingsSection(), const GeneralSettingsSection(), const ThemeSettingsSection(), const AboutSettingsSection(),