migrated to outlined icons

This commit is contained in:
Vadim 2024-05-07 20:39:40 +02:00
parent 2ba0a8f5bd
commit 8b9cd0dd19
38 changed files with 70 additions and 88 deletions

View file

@ -32,8 +32,8 @@ class MeteringBottomControls extends StatelessWidget {
onPressed: onSwitchEvSourceType, onPressed: onSwitchEvSourceType,
icon: Icon( icon: Icon(
UserPreferencesProvider.evSourceTypeOf(context) != EvSourceType.camera UserPreferencesProvider.evSourceTypeOf(context) != EvSourceType.camera
? Icons.camera_rear ? Icons.camera_rear_outlined
: Icons.wb_incandescent, : Icons.wb_incandescent_outlined,
), ),
tooltip: UserPreferencesProvider.evSourceTypeOf(context) != EvSourceType.camera tooltip: UserPreferencesProvider.evSourceTypeOf(context) != EvSourceType.camera
? S.of(context).tooltipUseCamera ? S.of(context).tooltipUseCamera
@ -48,7 +48,7 @@ class MeteringBottomControls extends StatelessWidget {
), ),
right: IconButton.filledTonal( right: IconButton.filledTonal(
onPressed: onSettings, onPressed: onSettings,
icon: const Icon(Icons.settings), icon: const Icon(Icons.settings_outlined),
tooltip: S.of(context).tooltipOpenSettings, tooltip: S.of(context).tooltipOpenSettings,
), ),
); );

View file

@ -21,7 +21,7 @@ class ExposureOffsetSlider extends StatelessWidget {
range: range, range: range,
value: value, value: value,
onChanged: onChanged, onChanged: onChanged,
icon: Icons.light_mode, icon: Icons.light_mode_outlined,
defaultValue: 0, defaultValue: 0,
rulerValueAdapter: (value) => value.toStringSignedAsFixed(0), rulerValueAdapter: (value) => value.toStringSignedAsFixed(0),
valueAdapter: (value) => S.of(context).evValue(value.toStringSignedAsFixed(1)), valueAdapter: (value) => S.of(context).evValue(value.toStringSignedAsFixed(1)),

View file

@ -32,7 +32,7 @@ class _ZoomSliderState extends State<ZoomSlider> {
range: widget.range, range: widget.range,
value: widget.value, value: widget.value,
onChanged: widget.onChanged, onChanged: widget.onChanged,
icon: Icons.search, icon: Icons.search_outlined,
defaultValue: EquipmentProfiles.selectedOf(context).lensZoom, defaultValue: EquipmentProfiles.selectedOf(context).lensZoom,
rulerValueAdapter: (value) => value.toStringAsFixed(0), rulerValueAdapter: (value) => value.toStringAsFixed(0),
valueAdapter: (value) => value.toZoom(), valueAdapter: (value) => value.toZoom(),

View file

@ -20,15 +20,12 @@ class CameraControlsPlaceholder extends StatelessWidget {
children: [ children: [
IconButton( IconButton(
onPressed: onReset, onPressed: onReset,
icon: Icon(error == CameraErrorType.permissionNotGranted ? Icons.settings : Icons.sync), icon: Icon(error == CameraErrorType.permissionNotGranted ? Icons.settings_outlined : Icons.sync_outlined),
), ),
const SizedBox(height: Dimens.grid8), const SizedBox(height: Dimens.grid8),
Text( Text(
error.toStringLocalized(context), error.toStringLocalized(context),
style: Theme.of(context) style: Theme.of(context).textTheme.bodyMedium?.copyWith(color: Theme.of(context).colorScheme.onBackground),
.textTheme
.bodyMedium
?.copyWith(color: Theme.of(context).colorScheme.onBackground),
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
], ],

View file

@ -12,7 +12,7 @@ class CameraViewPlaceholder extends StatelessWidget {
return Card( return Card(
color: error != null ? null : Colors.black, color: error != null ? null : Colors.black,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(Dimens.borderRadiusM)), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(Dimens.borderRadiusM)),
child: Center(child: error != null ? const Icon(Icons.no_photography) : null), child: Center(child: error != null ? const Icon(Icons.no_photography_outlined) : null),
); );
} }
} }

View file

@ -19,7 +19,7 @@ class ExposurePairsList extends StatelessWidget {
duration: Dimens.switchDuration, duration: Dimens.switchDuration,
child: exposurePairs.isEmpty child: exposurePairs.isEmpty
? IconPlaceholder( ? IconPlaceholder(
icon: Icons.not_interested, icon: Icons.not_interested_outlined,
text: S.of(context).noExposurePairs, text: S.of(context).noExposurePairs,
) )
: Stack( : Stack(

View file

@ -11,7 +11,7 @@ class EquipmentProfilePicker extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AnimatedDialogPicker<EquipmentProfile>( return AnimatedDialogPicker<EquipmentProfile>(
icon: Icons.camera, icon: Icons.camera_outlined,
title: S.of(context).equipmentProfile, title: S.of(context).equipmentProfile,
selectedValue: EquipmentProfiles.selectedOf(context), selectedValue: EquipmentProfiles.selectedOf(context),
values: EquipmentProfiles.of(context), values: EquipmentProfiles.of(context),

View file

@ -13,7 +13,7 @@ class FilmPicker extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AnimatedDialogPicker<Film>( return AnimatedDialogPicker<Film>(
icon: Icons.camera_roll, icon: Icons.camera_roll_outlined,
title: S.of(context).film, title: S.of(context).film,
subtitle: S.of(context).filmReciprocityHint, subtitle: S.of(context).filmReciprocityHint,
selectedValue: Films.selectedOf(context), selectedValue: Films.selectedOf(context),
@ -23,17 +23,14 @@ class FilmPicker extends StatelessWidget {
closedChild: ReadingValueContainer.singleValue( closedChild: ReadingValueContainer.singleValue(
value: ReadingValue( value: ReadingValue(
label: _label(context), label: _label(context),
value: Films.selectedOf(context).name.isEmpty value: Films.selectedOf(context).name.isEmpty ? S.of(context).none : Films.selectedOf(context).name,
? S.of(context).none
: Films.selectedOf(context).name,
), ),
), ),
); );
} }
String _label(BuildContext context) { String _label(BuildContext context) {
if (Films.selectedOf(context) == const Film.other() || if (Films.selectedOf(context) == const Film.other() || Films.selectedOf(context).iso == selectedIso.value) {
Films.selectedOf(context).iso == selectedIso.value) {
return S.of(context).film; return S.of(context).film;
} }

View file

@ -18,16 +18,15 @@ class IsoValuePicker extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AnimatedDialogPicker<IsoValue>( return AnimatedDialogPicker<IsoValue>(
icon: Icons.iso, icon: Icons.iso_outlined,
title: S.of(context).iso, title: S.of(context).iso,
subtitle: S.of(context).filmSpeed, subtitle: S.of(context).filmSpeed,
selectedValue: selectedValue, selectedValue: selectedValue,
values: values, values: values,
itemTitleBuilder: (_, value) => Text(value.value.toString()), itemTitleBuilder: (_, value) => Text(value.value.toString()),
// using ascending order, because increase in film speed rises EV // using ascending order, because increase in film speed rises EV
itemTrailingBuilder: (selected, value) => value.value != selected.value itemTrailingBuilder: (selected, value) =>
? Text(S.of(context).evValue(selected.toStringDifference(value))) value.value != selected.value ? Text(S.of(context).evValue(selected.toStringDifference(value))) : null,
: null,
onChanged: onChanged, onChanged: onChanged,
closedChild: ReadingValueContainer.singleValue( closedChild: ReadingValueContainer.singleValue(
value: ReadingValue( value: ReadingValue(

View file

@ -18,7 +18,7 @@ class NdValuePicker extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AnimatedDialogPicker<NdValue>( return AnimatedDialogPicker<NdValue>(
icon: Icons.filter_b_and_w, icon: Icons.filter_b_and_w_outlined,
title: S.of(context).nd, title: S.of(context).nd,
subtitle: S.of(context).ndFilterFactor, subtitle: S.of(context).ndFilterFactor,
selectedValue: selectedValue, selectedValue: selectedValue,

View file

@ -60,7 +60,7 @@ class ReadingValueContainer extends StatelessWidget implements AnimatedDialogClo
top: 0, top: 0,
right: 0, right: 0,
child: Icon( child: Icon(
Icons.lock, Icons.lock_outlined,
size: Theme.of(context).textTheme.labelMedium!.fontSize, size: Theme.of(context).textTheme.labelMedium!.fontSize,
color: Theme.of(context).colorScheme.onPrimaryContainer, color: Theme.of(context).colorScheme.onPrimaryContainer,
), ),

View file

@ -9,7 +9,7 @@ class ReportIssueListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.bug_report), leading: const Icon(Icons.bug_report_outlined),
title: Text(S.of(context).reportIssue), title: Text(S.of(context).reportIssue),
onTap: () { onTap: () {
launchUrl( launchUrl(

View file

@ -8,7 +8,7 @@ class RestorePurchasesListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.restore), leading: const Icon(Icons.restore_outlined),
title: Text(S.of(context).restorePurchases), title: Text(S.of(context).restorePurchases),
onTap: IAPProductsProvider.of(context).restorePurchases, onTap: IAPProductsProvider.of(context).restorePurchases,
); );

View file

@ -9,7 +9,7 @@ class SourceCodeListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.code), leading: const Icon(Icons.code_outlined),
title: Text(S.of(context).sourceCode), title: Text(S.of(context).sourceCode),
onTap: () { onTap: () {
launchUrl( launchUrl(

View file

@ -10,7 +10,7 @@ class WriteEmailListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.email), leading: const Icon(Icons.email_outlined),
title: Text(S.of(context).writeEmail), title: Text(S.of(context).writeEmail),
onTap: () { onTap: () {
final mailToUrl = Uri.parse('mailto:$contactEmail?subject=M3 Lightmeter'); final mailToUrl = Uri.parse('mailto:$contactEmail?subject=M3 Lightmeter');

View file

@ -12,7 +12,7 @@ class CaffeineListTile extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<CaffeineListTileBloc, bool>( return BlocBuilder<CaffeineListTileBloc, bool>(
builder: (context, state) => SwitchListTile( builder: (context, state) => SwitchListTile(
secondary: const Icon(Icons.screen_lock_portrait), secondary: const Icon(Icons.screen_lock_portrait_outlined),
title: Text(S.of(context).keepScreenOn), title: Text(S.of(context).keepScreenOn),
value: state, value: state,
onChanged: context.read<CaffeineListTileBloc>().onCaffeineChanged, onChanged: context.read<CaffeineListTileBloc>().onCaffeineChanged,

View file

@ -12,7 +12,7 @@ class HapticsListTile extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<HapticsListTileBloc, bool>( return BlocBuilder<HapticsListTileBloc, bool>(
builder: (context, state) => SwitchListTile( builder: (context, state) => SwitchListTile(
secondary: const Icon(Icons.vibration), secondary: const Icon(Icons.vibration_outlined),
title: Text(S.of(context).haptics), title: Text(S.of(context).haptics),
value: state, value: state,
onChanged: context.read<HapticsListTileBloc>().onHapticsChanged, onChanged: context.read<HapticsListTileBloc>().onHapticsChanged,

View file

@ -10,14 +10,14 @@ class LanguageListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.language), leading: const Icon(Icons.language_outlined),
title: Text(S.of(context).language), title: Text(S.of(context).language),
trailing: Text(UserPreferencesProvider.localeOf(context).localizedName), trailing: Text(UserPreferencesProvider.localeOf(context).localizedName),
onTap: () { onTap: () {
showDialog<SupportedLocale>( showDialog<SupportedLocale>(
context: context, context: context,
builder: (_) => DialogPicker<SupportedLocale>( builder: (_) => DialogPicker<SupportedLocale>(
icon: Icons.language, icon: Icons.language_outlined,
title: S.of(context).chooseLanguage, title: S.of(context).chooseLanguage,
selectedValue: UserPreferencesProvider.localeOf(context), selectedValue: UserPreferencesProvider.localeOf(context),
values: SupportedLocale.values, values: SupportedLocale.values,

View file

@ -11,7 +11,7 @@ class VolumeActionsListTile extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<VolumeActionsListTileBloc, bool>( return BlocBuilder<VolumeActionsListTileBloc, bool>(
builder: (context, state) => SwitchListTile( builder: (context, state) => SwitchListTile(
secondary: const Icon(Icons.volume_up), secondary: const Icon(Icons.volume_up_outlined),
title: Text(S.of(context).volumeKeysAction), title: Text(S.of(context).volumeKeysAction),
value: state, value: state,
onChanged: context.read<VolumeActionsListTileBloc>().onVolumeActionChanged, onChanged: context.read<VolumeActionsListTileBloc>().onVolumeActionChanged,

View file

@ -12,7 +12,7 @@ class BuyProListTile extends StatelessWidget {
final status = IAPProducts.productOf(context, IAPProductType.paidFeatures)?.status; final status = IAPProducts.productOf(context, IAPProductType.paidFeatures)?.status;
final isPending = status == IAPProductStatus.purchased || status == null; final isPending = status == IAPProductStatus.purchased || status == null;
return ListTile( return ListTile(
leading: const Icon(Icons.star), leading: const Icon(Icons.star_outlined),
title: Text(S.of(context).unlockProFeatures), title: Text(S.of(context).unlockProFeatures),
onTap: !isPending onTap: !isPending
? () { ? () {

View file

@ -16,7 +16,7 @@ class CalibrationDialog extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
final bool hasLightSensor = ServicesProvider.of(context).environment.hasLightSensor; final bool hasLightSensor = ServicesProvider.of(context).environment.hasLightSensor;
return AlertDialog( return AlertDialog(
icon: const Icon(Icons.settings_brightness), icon: const Icon(Icons.settings_brightness_outlined),
titlePadding: Dimens.dialogIconTitlePadding, titlePadding: Dimens.dialogIconTitlePadding,
title: Text(S.of(context).calibration), title: Text(S.of(context).calibration),
contentPadding: const EdgeInsets.symmetric(horizontal: Dimens.paddingL), contentPadding: const EdgeInsets.symmetric(horizontal: Dimens.paddingL),
@ -25,38 +25,27 @@ class CalibrationDialog extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Text( Text(
hasLightSensor hasLightSensor ? S.of(context).calibrationMessage : S.of(context).calibrationMessageCameraOnly,
? S.of(context).calibrationMessage
: S.of(context).calibrationMessageCameraOnly,
), ),
const SizedBox(height: Dimens.grid16), const SizedBox(height: Dimens.grid16),
BlocBuilder<CalibrationDialogBloc, CalibrationDialogState>( BlocBuilder<CalibrationDialogBloc, CalibrationDialogState>(
buildWhen: (previous, current) => buildWhen: (previous, current) => previous.cameraEvCalibration != current.cameraEvCalibration,
previous.cameraEvCalibration != current.cameraEvCalibration,
builder: (context, state) => _CalibrationUnit( builder: (context, state) => _CalibrationUnit(
title: S.of(context).camera, title: S.of(context).camera,
value: state.cameraEvCalibration, value: state.cameraEvCalibration,
onChanged: (value) => context onChanged: (value) => context.read<CalibrationDialogBloc>().add(CameraEvCalibrationChangedEvent(value)),
.read<CalibrationDialogBloc>() onReset: () => context.read<CalibrationDialogBloc>().add(const CameraEvCalibrationResetEvent()),
.add(CameraEvCalibrationChangedEvent(value)),
onReset: () => context
.read<CalibrationDialogBloc>()
.add(const CameraEvCalibrationResetEvent()),
), ),
), ),
if (hasLightSensor) if (hasLightSensor)
BlocBuilder<CalibrationDialogBloc, CalibrationDialogState>( BlocBuilder<CalibrationDialogBloc, CalibrationDialogState>(
buildWhen: (previous, current) => buildWhen: (previous, current) => previous.lightSensorEvCalibration != current.lightSensorEvCalibration,
previous.lightSensorEvCalibration != current.lightSensorEvCalibration,
builder: (context, state) => _CalibrationUnit( builder: (context, state) => _CalibrationUnit(
title: S.of(context).lightSensor, title: S.of(context).lightSensor,
value: state.lightSensorEvCalibration, value: state.lightSensorEvCalibration,
onChanged: (value) => context onChanged: (value) =>
.read<CalibrationDialogBloc>() context.read<CalibrationDialogBloc>().add(LightSensorEvCalibrationChangedEvent(value)),
.add(LightSensorEvCalibrationChangedEvent(value)), onReset: () => context.read<CalibrationDialogBloc>().add(const LightSensorEvCalibrationResetEvent()),
onReset: () => context
.read<CalibrationDialogBloc>()
.add(const LightSensorEvCalibrationResetEvent()),
), ),
), ),
], ],
@ -116,7 +105,7 @@ class _CalibrationUnit extends StatelessWidget {
), ),
IconButton( IconButton(
onPressed: onReset, onPressed: onReset,
icon: const Icon(Icons.sync), icon: const Icon(Icons.sync_outlined),
tooltip: S.of(context).tooltipResetToZero, tooltip: S.of(context).tooltipResetToZero,
), ),
], ],

View file

@ -9,7 +9,7 @@ class CalibrationListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.settings_brightness), leading: const Icon(Icons.settings_brightness_outlined),
title: Text(S.of(context).calibration), title: Text(S.of(context).calibration),
onTap: () { onTap: () {
showDialog<double>( showDialog<double>(

View file

@ -11,13 +11,13 @@ class CameraFeaturesListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return IAPListTile( return IAPListTile(
leading: const Icon(Icons.camera_alt), leading: const Icon(Icons.camera_alt_outlined),
title: Text(S.of(context).cameraFeatures), title: Text(S.of(context).cameraFeatures),
onTap: () { onTap: () {
showDialog( showDialog(
context: context, context: context,
builder: (_) => DialogSwitch<CameraFeature>( builder: (_) => DialogSwitch<CameraFeature>(
icon: Icons.layers_outlined, icon: Icons.camera_alt_outlined,
title: S.of(context).cameraFeatures, title: S.of(context).cameraFeatures,
values: UserPreferencesProvider.cameraConfigOf(context), values: UserPreferencesProvider.cameraConfigOf(context),
titleAdapter: (context, feature) { titleAdapter: (context, feature) {

View file

@ -171,7 +171,7 @@ class _AnimatedNameLeading extends AnimatedWidget {
return Padding( return Padding(
padding: EdgeInsets.only(right: _progress.value * Dimens.grid8), padding: EdgeInsets.only(right: _progress.value * Dimens.grid8),
child: Icon( child: Icon(
Icons.edit, Icons.edit_outlined,
size: _progress.value * Dimens.grid24, size: _progress.value * Dimens.grid24,
), ),
); );
@ -194,7 +194,7 @@ class _AnimatedArrowButton extends AnimatedWidget {
onPressed: onPressed, onPressed: onPressed,
icon: Transform.rotate( icon: Transform.rotate(
angle: _progress.value * pi, angle: _progress.value * pi,
child: const Icon(Icons.keyboard_arrow_down), child: const Icon(Icons.keyboard_arrow_down_outlined),
), ),
tooltip: _progress.value == 0 ? S.of(context).tooltipExpand : S.of(context).tooltipCollapse, tooltip: _progress.value == 0 ? S.of(context).tooltipExpand : S.of(context).tooltipCollapse,
); );
@ -239,7 +239,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
child: Column( child: Column(
children: [ children: [
FilterListTile<IsoValue>( FilterListTile<IsoValue>(
icon: Icons.iso, icon: Icons.iso_outlined,
title: S.of(context).isoValues, title: S.of(context).isoValues,
description: S.of(context).isoValuesFilterDescription, description: S.of(context).isoValuesFilterDescription,
values: IsoValue.values, values: IsoValue.values,
@ -247,7 +247,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
onChanged: onIsoValuesSelecred, onChanged: onIsoValuesSelecred,
), ),
FilterListTile<NdValue>( FilterListTile<NdValue>(
icon: Icons.filter_b_and_w, icon: Icons.filter_b_and_w_outlined,
title: S.of(context).ndFilters, title: S.of(context).ndFilters,
description: S.of(context).ndFiltersFilterDescription, description: S.of(context).ndFiltersFilterDescription,
values: NdValue.values, values: NdValue.values,
@ -255,7 +255,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
onChanged: onNdValuesSelected, onChanged: onNdValuesSelected,
), ),
RangePickerListTile<ApertureValue>( RangePickerListTile<ApertureValue>(
icon: Icons.camera, icon: Icons.camera_outlined,
title: S.of(context).apertureValues, title: S.of(context).apertureValues,
description: S.of(context).apertureValuesFilterDescription, description: S.of(context).apertureValuesFilterDescription,
values: ApertureValue.values, values: ApertureValue.values,
@ -263,7 +263,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
onChanged: onApertureValuesSelected, onChanged: onApertureValuesSelected,
), ),
RangePickerListTile<ShutterSpeedValue>( RangePickerListTile<ShutterSpeedValue>(
icon: Icons.shutter_speed, icon: Icons.shutter_speed_outlined,
title: S.of(context).shutterSpeedValues, title: S.of(context).shutterSpeedValues,
description: S.of(context).shutterSpeedValuesFilterDescription, description: S.of(context).shutterSpeedValuesFilterDescription,
values: ShutterSpeedValue.values, values: ShutterSpeedValue.values,
@ -275,7 +275,7 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
value.value == 1 ? S.of(context).shutterSpeedManual : value.toString(), value.value == 1 ? S.of(context).shutterSpeedManual : value.toString(),
), ),
SliderPickerListTile( SliderPickerListTile(
icon: Icons.zoom_in, icon: Icons.zoom_in_outlined,
title: S.of(context).lensZoom, title: S.of(context).lensZoom,
description: S.of(context).lensZoomDescription, description: S.of(context).lensZoomDescription,
value: equipmentData.lensZoom, value: equipmentData.lensZoom,
@ -291,12 +291,12 @@ class _AnimatedEquipmentListTiles extends AnimatedWidget {
children: [ children: [
IconButton( IconButton(
onPressed: onCopy, onPressed: onCopy,
icon: const Icon(Icons.copy), icon: const Icon(Icons.copy_outlined),
tooltip: S.of(context).tooltipCopy, tooltip: S.of(context).tooltipCopy,
), ),
IconButton( IconButton(
onPressed: onDelete, onPressed: onDelete,
icon: const Icon(Icons.delete), icon: const Icon(Icons.delete_outlined),
tooltip: S.of(context).tooltipDelete, tooltip: S.of(context).tooltipDelete,
), ),
], ],

View file

@ -23,7 +23,7 @@ class _EquipmentProfileNameDialogState extends State<EquipmentProfileNameDialog>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AlertDialog( return AlertDialog(
icon: const Icon(Icons.edit), icon: const Icon(Icons.edit_outlined),
titlePadding: Dimens.dialogIconTitlePadding, titlePadding: Dimens.dialogIconTitlePadding,
title: Text(S.of(context).equipmentProfileName), title: Text(S.of(context).equipmentProfileName),
content: TextField( content: TextField(

View file

@ -32,7 +32,7 @@ class _EquipmentProfilesScreenState extends State<EquipmentProfilesScreen> {
appBarActions: [ appBarActions: [
IconButton( IconButton(
onPressed: _addProfile, onPressed: _addProfile,
icon: const Icon(Icons.add), icon: const Icon(Icons.add_outlined),
tooltip: S.of(context).tooltipAdd, tooltip: S.of(context).tooltipAdd,
), ),
], ],
@ -150,7 +150,7 @@ class _EquipmentProfilesListPlaceholder extends StatelessWidget {
child: Padding( child: Padding(
padding: const EdgeInsets.all(Dimens.paddingL), padding: const EdgeInsets.all(Dimens.paddingL),
child: IconPlaceholder( child: IconPlaceholder(
icon: Icons.add, icon: Icons.add_outlined,
text: S.of(context).tapToAdd, text: S.of(context).tapToAdd,
), ),
), ),

View file

@ -10,7 +10,7 @@ class EquipmentProfilesListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return IAPListTile( return IAPListTile(
leading: const Icon(Icons.camera), leading: const Icon(Icons.camera_outlined),
title: Text(S.of(context).equipmentProfiles), title: Text(S.of(context).equipmentProfiles),
onTap: () { onTap: () {
Navigator.of(context).push<EquipmentProfile>( Navigator.of(context).push<EquipmentProfile>(

View file

@ -11,13 +11,13 @@ class FilmsListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return IAPListTile( return IAPListTile(
leading: const Icon(Icons.camera_roll), leading: const Icon(Icons.camera_roll_outlined),
title: Text(S.of(context).filmsInUse), title: Text(S.of(context).filmsInUse),
onTap: () { onTap: () {
showDialog<List<Film>>( showDialog<List<Film>>(
context: context, context: context,
builder: (_) => DialogFilter<Film>( builder: (_) => DialogFilter<Film>(
icon: const Icon(Icons.camera_roll), icon: const Icon(Icons.camera_roll_outlined),
title: S.of(context).filmsInUse, title: S.of(context).filmsInUse,
description: S.of(context).filmsInUseDescription, description: S.of(context).filmsInUseDescription,
values: Films.of(context).sublist(1), values: Films.of(context).sublist(1),

View file

@ -10,14 +10,14 @@ class StopTypeListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.straighten), leading: const Icon(Icons.straighten_outlined),
title: Text(S.of(context).fractionalStops), title: Text(S.of(context).fractionalStops),
trailing: Text(_typeToString(context, UserPreferencesProvider.stopTypeOf(context))), trailing: Text(_typeToString(context, UserPreferencesProvider.stopTypeOf(context))),
onTap: () { onTap: () {
showDialog<StopType>( showDialog<StopType>(
context: context, context: context,
builder: (_) => DialogPicker<StopType>( builder: (_) => DialogPicker<StopType>(
icon: Icons.straighten, icon: Icons.straighten_outlined,
title: S.of(context).showFractionalStops, title: S.of(context).showFractionalStops,
selectedValue: UserPreferencesProvider.stopTypeOf(context), selectedValue: UserPreferencesProvider.stopTypeOf(context),
values: StopType.values, values: StopType.values,

View file

@ -13,7 +13,7 @@ class ShowEv100ListTile extends StatelessWidget {
return Disable( return Disable(
disable: !context.isPro, disable: !context.isPro,
child: SwitchListTile( child: SwitchListTile(
secondary: const Icon(Icons.adjust), secondary: const Icon(Icons.adjust_outlined),
title: Text(S.of(context).showEv100), title: Text(S.of(context).showEv100),
value: context.isPro && UserPreferencesProvider.showEv100Of(context), value: context.isPro && UserPreferencesProvider.showEv100Of(context),
onChanged: (_) => UserPreferencesProvider.of(context).toggleShowEv100(), onChanged: (_) => UserPreferencesProvider.of(context).toggleShowEv100(),

View file

@ -109,7 +109,7 @@ class _DialogFilterState<T> extends State<DialogFilter<T>> {
width: 40, width: 40,
child: IconButton( child: IconButton(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
icon: Icon(_hasAnyUnselected ? Icons.select_all : Icons.deselect), icon: Icon(_hasAnyUnselected ? Icons.select_all_outlined : Icons.deselect_outlined),
onPressed: _toggleAll, onPressed: _toggleAll,
tooltip: _hasAnyUnselected ? S.of(context).tooltipSelectAll : S.of(context).tooltipDesecelectAll, tooltip: _hasAnyUnselected ? S.of(context).tooltipSelectAll : S.of(context).tooltipDesecelectAll,
), ),

View file

@ -10,7 +10,7 @@ class DynamicColorListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SwitchListTile( return SwitchListTile(
secondary: const Icon(Icons.colorize), secondary: const Icon(Icons.colorize_outlined),
title: Text(S.of(context).dynamicColor), title: Text(S.of(context).dynamicColor),
value: UserPreferencesProvider.dynamicColorStateOf(context) == DynamicColorState.enabled, value: UserPreferencesProvider.dynamicColorStateOf(context) == DynamicColorState.enabled,
onChanged: UserPreferencesProvider.of(context).enableDynamicColor, onChanged: UserPreferencesProvider.of(context).enableDynamicColor,

View file

@ -24,7 +24,7 @@ class _PrimaryColorDialogPickerState extends State<PrimaryColorDialogPicker> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return AlertDialog( return AlertDialog(
icon: const Icon(Icons.palette), icon: const Icon(Icons.palette_outlined),
titlePadding: Dimens.dialogIconTitlePadding, titlePadding: Dimens.dialogIconTitlePadding,
title: Text(S.of(context).choosePrimaryColor), title: Text(S.of(context).choosePrimaryColor),
content: SizedBox( content: SizedBox(
@ -124,7 +124,7 @@ class _SelectableColorItemState extends State<_SelectableColorItem> {
duration: Dimens.durationS, duration: Dimens.durationS,
child: widget.selected child: widget.selected
? Icon( ? Icon(
Icons.check, Icons.check_outlined,
color: ThemeData.estimateBrightnessForColor(widget.color) == Brightness.light color: ThemeData.estimateBrightnessForColor(widget.color) == Brightness.light
? Colors.black ? Colors.black
: Colors.white, : Colors.white,

View file

@ -13,13 +13,13 @@ class PrimaryColorListTile extends StatelessWidget {
if (UserPreferencesProvider.dynamicColorStateOf(context) == DynamicColorState.enabled) { if (UserPreferencesProvider.dynamicColorStateOf(context) == DynamicColorState.enabled) {
return Disable( return Disable(
child: ListTile( child: ListTile(
leading: const Icon(Icons.palette), leading: const Icon(Icons.palette_outlined),
title: Text(S.of(context).primaryColor), title: Text(S.of(context).primaryColor),
), ),
); );
} }
return ListTile( return ListTile(
leading: const Icon(Icons.palette), leading: const Icon(Icons.palette_outlined),
title: Text(S.of(context).primaryColor), title: Text(S.of(context).primaryColor),
onTap: () { onTap: () {
showDialog<Color>( showDialog<Color>(

View file

@ -10,14 +10,14 @@ class ThemeTypeListTile extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListTile( return ListTile(
leading: const Icon(Icons.brightness_6), leading: const Icon(Icons.brightness_6_outlined),
title: Text(S.of(context).theme), title: Text(S.of(context).theme),
trailing: Text(_typeToString(context, UserPreferencesProvider.themeTypeOf(context))), trailing: Text(_typeToString(context, UserPreferencesProvider.themeTypeOf(context))),
onTap: () { onTap: () {
showDialog<ThemeType>( showDialog<ThemeType>(
context: context, context: context,
builder: (_) => DialogPicker<ThemeType>( builder: (_) => DialogPicker<ThemeType>(
icon: Icons.brightness_6, icon: Icons.brightness_6_outlined,
title: S.of(context).chooseTheme, title: S.of(context).chooseTheme,
selectedValue: UserPreferencesProvider.themeTypeOf(context), selectedValue: UserPreferencesProvider.themeTypeOf(context),
values: ThemeType.values, values: ThemeType.values,

View file

@ -24,7 +24,7 @@ class ProFeaturesDialog extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return TransparentDialog( return TransparentDialog(
icon: Icons.star, icon: Icons.star_outlined,
title: S.of(context).proFeatures, title: S.of(context).proFeatures,
scrollableContent: false, scrollableContent: false,
content: Flexible( content: Flexible(

View file

@ -53,7 +53,7 @@ class RulerSlider extends StatelessWidget {
), ),
), ),
IconButton( IconButton(
icon: const Icon(Icons.sync), icon: const Icon(Icons.sync_outlined),
onPressed: value != defaultValue ? () => onChanged(defaultValue) : null, onPressed: value != defaultValue ? () => onChanged(defaultValue) : null,
tooltip: S.of(context).tooltipResetToZero, tooltip: S.of(context).tooltipResetToZero,
), ),

View file

@ -42,7 +42,7 @@ class SliverScreen extends StatelessWidget {
if (Navigator.of(context).canPop()) if (Navigator.of(context).canPop())
IconButton( IconButton(
onPressed: Navigator.of(context).pop, onPressed: Navigator.of(context).pop,
icon: const Icon(Icons.close), icon: const Icon(Icons.close_outlined),
tooltip: S.of(context).tooltipClose, tooltip: S.of(context).tooltipClose,
), ),
], ],