mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2025-08-05 04:36:41 +00:00
added CameraSettingsSection
This commit is contained in:
parent
39501ee4ac
commit
02c6c2fc6f
13 changed files with 60 additions and 15 deletions
|
@ -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/film_edit/flow_film_edit.dart';
|
||||||
import 'package:lightmeter/screens/films/screen_films.dart';
|
import 'package:lightmeter/screens/films/screen_films.dart';
|
||||||
import 'package:lightmeter/screens/lightmeter_pro/screen_lightmeter_pro.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/logbook_photo_edit/flow_logbook_photo_edit.dart';
|
||||||
import 'package:lightmeter/screens/metering/flow_metering.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/settings/flow_settings.dart';
|
||||||
import 'package:lightmeter/screens/shared/release_notes_dialog/flow_dialog_release_notes.dart';
|
import 'package:lightmeter/screens/shared/release_notes_dialog/flow_dialog_release_notes.dart';
|
||||||
import 'package:lightmeter/screens/timer/flow_timer.dart';
|
import 'package:lightmeter/screens/timer/flow_timer.dart';
|
||||||
|
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
||||||
|
|
||||||
class Application extends StatelessWidget {
|
class Application extends StatelessWidget {
|
||||||
const Application({super.key});
|
const Application({super.key});
|
||||||
|
@ -54,7 +53,7 @@ class Application extends StatelessWidget {
|
||||||
routes: {
|
routes: {
|
||||||
NavigationRoutes.meteringScreen.name: (_) => const ReleaseNotesFlow(child: MeteringFlow()),
|
NavigationRoutes.meteringScreen.name: (_) => const ReleaseNotesFlow(child: MeteringFlow()),
|
||||||
NavigationRoutes.settingsScreen.name: (_) => const SettingsFlow(),
|
NavigationRoutes.settingsScreen.name: (_) => const SettingsFlow(),
|
||||||
NavigationRoutes.equipmentProfilesListScreen.name: (_) => const LogbookScreen(),
|
NavigationRoutes.equipmentProfilesListScreen.name: (_) => const EquipmentProfilesScreen(),
|
||||||
NavigationRoutes.equipmentProfileEditScreen.name: (context) =>
|
NavigationRoutes.equipmentProfileEditScreen.name: (context) =>
|
||||||
EquipmentProfileEditFlow(args: context.routeArgs<EquipmentProfileEditArgs>()),
|
EquipmentProfileEditFlow(args: context.routeArgs<EquipmentProfileEditArgs>()),
|
||||||
NavigationRoutes.filmsListScreen.name: (_) => const FilmsScreen(),
|
NavigationRoutes.filmsListScreen.name: (_) => const FilmsScreen(),
|
||||||
|
|
|
@ -173,5 +173,6 @@
|
||||||
"note": "Notiz",
|
"note": "Notiz",
|
||||||
"notSet": "Nicht gesetzt",
|
"notSet": "Nicht gesetzt",
|
||||||
"location": "Standort",
|
"location": "Standort",
|
||||||
"noMapsAppFound": "Keine Kartenanwendung gefunden."
|
"noMapsAppFound": "Keine Kartenanwendung gefunden.",
|
||||||
|
"logbook": "Fototagebuch"
|
||||||
}
|
}
|
|
@ -173,5 +173,6 @@
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"notSet": "Not set",
|
"notSet": "Not set",
|
||||||
"location": "Location",
|
"location": "Location",
|
||||||
"noMapsAppFound": "No maps application found."
|
"noMapsAppFound": "No maps application found.",
|
||||||
|
"logbook": "Logbook"
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
"calibration": "Calibration",
|
"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.",
|
"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.",
|
"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",
|
"lightSensor": "Capteur de lumière",
|
||||||
"showEv100": "Montrer EV\u2081\u2080\u2080",
|
"showEv100": "Montrer EV\u2081\u2080\u2080",
|
||||||
"meteringScreenLayout": "Disposition de l'écran de mesure",
|
"meteringScreenLayout": "Disposition de l'écran de mesure",
|
||||||
|
@ -164,5 +164,6 @@
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"notSet": "Non défini",
|
"notSet": "Non défini",
|
||||||
"location": "Emplacement",
|
"location": "Emplacement",
|
||||||
"noMapsAppFound": "Aucune application de cartes trouvée."
|
"noMapsAppFound": "Aucune application de cartes trouvée.",
|
||||||
|
"logbook": "Carnet photo"
|
||||||
}
|
}
|
|
@ -163,5 +163,6 @@
|
||||||
"note": "Заметка",
|
"note": "Заметка",
|
||||||
"notSet": "Не задано",
|
"notSet": "Не задано",
|
||||||
"location": "Местоположение",
|
"location": "Местоположение",
|
||||||
"noMapsAppFound": "Приложение карт не найдено."
|
"noMapsAppFound": "Приложение карт не найдено.",
|
||||||
|
"logbook": "Фотожурнал"
|
||||||
}
|
}
|
|
@ -32,7 +32,7 @@
|
||||||
"calibration": "校准",
|
"calibration": "校准",
|
||||||
"calibrationMessage": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。",
|
"calibrationMessage": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。",
|
||||||
"calibrationMessageCameraOnly": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。",
|
"calibrationMessageCameraOnly": "此应用测量读数的准确性取决于设备的后置摄像头。如需更精确的测量结果或测量结果存在偏差,请手动校准 EV 。",
|
||||||
"camera": "摄像头",
|
"camera": "相机",
|
||||||
"lightSensor": "光线传感器",
|
"lightSensor": "光线传感器",
|
||||||
"showEv100": "显示 EV\u2081\u2080\u2080",
|
"showEv100": "显示 EV\u2081\u2080\u2080",
|
||||||
"meteringScreenLayout": "布局",
|
"meteringScreenLayout": "布局",
|
||||||
|
@ -161,5 +161,6 @@
|
||||||
"note": "备注",
|
"note": "备注",
|
||||||
"notSet": "未设置",
|
"notSet": "未设置",
|
||||||
"location": "位置",
|
"location": "位置",
|
||||||
"noMapsAppFound": "未找到地图应用程序。"
|
"noMapsAppFound": "未找到地图应用程序。",
|
||||||
|
"logbook": "拍照日志"
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:lightmeter/generated/l10n.dart';
|
||||||
import 'package:lightmeter/navigation/routes.dart';
|
import 'package:lightmeter/navigation/routes.dart';
|
||||||
import 'package:lightmeter/platform_config.dart';
|
import 'package:lightmeter/platform_config.dart';
|
||||||
import 'package:lightmeter/providers/logbook_photos_provider.dart';
|
import 'package:lightmeter/providers/logbook_photos_provider.dart';
|
||||||
|
@ -19,7 +20,7 @@ class _LogbookScreenState extends State<LogbookScreen> with SingleTickerProvider
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return SliverScreen(
|
return SliverScreen(
|
||||||
title: Text("Logbook"),
|
title: Text(S.of(context).logbook),
|
||||||
slivers: [
|
slivers: [
|
||||||
_PicturesGridBuilder(
|
_PicturesGridBuilder(
|
||||||
values: LogbookPhotos.of(context),
|
values: LogbookPhotos.of(context),
|
||||||
|
|
|
@ -46,7 +46,7 @@ class LogbookPhotoEditBloc extends Bloc<LogbookPhotoEditEvent, LogbookPhotoEditS
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _onApertureChanged(LogbookPhotoApertureChangedEvent event, Emitter emit) async {
|
Future<void> _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(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
aperture: event.aperture,
|
aperture: event.aperture,
|
||||||
|
@ -56,7 +56,7 @@ class LogbookPhotoEditBloc extends Bloc<LogbookPhotoEditEvent, LogbookPhotoEditS
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _onShutterSpeedChanged(LogbookPhotoShutterSpeedChangedEvent event, Emitter emit) async {
|
Future<void> _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(
|
emit(
|
||||||
state.copyWith(
|
state.copyWith(
|
||||||
shutterSpeed: event.shutterSpeed,
|
shutterSpeed: event.shutterSpeed,
|
||||||
|
|
|
@ -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()),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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(),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:lightmeter/generated/l10n.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/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/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/films/widget_list_tile_films.dart';
|
||||||
import 'package:lightmeter/screens/settings/components/metering/components/fractional_stops/widget_list_tile_fractional_stops.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(),
|
MeteringScreenLayoutListTile(),
|
||||||
EquipmentProfilesListTile(),
|
EquipmentProfilesListTile(),
|
||||||
FilmsListTile(),
|
FilmsListTile(),
|
||||||
CameraFeaturesListTile(),
|
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:lightmeter/generated/l10n.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/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/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/lightmeter_pro/widget_settings_section_lightmeter_pro.dart';
|
||||||
import 'package:lightmeter/screens/settings/components/metering/widget_settings_section_metering.dart';
|
import 'package:lightmeter/screens/settings/components/metering/widget_settings_section_metering.dart';
|
||||||
|
@ -40,6 +41,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
|
||||||
<Widget>[
|
<Widget>[
|
||||||
if (!context.isPro) const LightmeterProSettingsSection(),
|
if (!context.isPro) const LightmeterProSettingsSection(),
|
||||||
const MeteringSettingsSection(),
|
const MeteringSettingsSection(),
|
||||||
|
const CameraSettingsSection(),
|
||||||
const GeneralSettingsSection(),
|
const GeneralSettingsSection(),
|
||||||
const ThemeSettingsSection(),
|
const ThemeSettingsSection(),
|
||||||
const AboutSettingsSection(),
|
const AboutSettingsSection(),
|
||||||
|
|
Loading…
Reference in a new issue