Commit 3777119
Changed files (3)
lib
components
screens
subsettings
lib/components/settings_widgets.dart
@@ -110,38 +110,35 @@ class ColorSelectionSettingsTile extends StatelessWidget {
}
}
+/// A ListTile with a trailing switch.
+///
+/// The properties behave like those of [ListTile] and [Switch] respectively.
class SwitchSettingsTile extends StatelessWidget {
- final Widget title;
- final void Function(bool newValue) onToggle;
- final Widget? leading;
- final Widget? description;
- final bool? initialValue;
- final bool disabled;
-
+ /// Creates a new [ListTile] with a trailing switch.
const SwitchSettingsTile(
{super.key,
required this.title,
required this.onToggle,
+ required this.initialValue,
this.leading,
- this.description,
- this.initialValue,
- this.disabled = false});
+ this.subtitle,});
+
+ final Widget title;
+ final Widget? subtitle;
+ final void Function(bool newValue) onToggle;
+ final Widget? leading;
+ final bool initialValue;
@override
Widget build(BuildContext context) {
- var s = Switch(
- value: initialValue ?? false,
- onChanged: onToggle,
- );
- return SettingsTile(
+ return ListTile(
title: title,
- onPressed: (BuildContext context) {
- s.value != s.value;
- },
leading: leading,
- description: description,
- disabled: disabled,
- trailing: s,
+ subtitle: subtitle,
+ trailing: Switch(
+ value: initialValue,
+ onChanged: onToggle,
+ ),
);
}
}
lib/screens/subsettings/export_import_screen.dart
@@ -50,7 +50,7 @@ class ExportImportScreen extends StatelessWidget {
}),
SwitchSettingsTile(
title: Text(localizations.exportAfterEveryInput),
- description: Text(localizations.exportAfterEveryInputDesc),
+ subtitle: Text(localizations.exportAfterEveryInputDesc),
initialValue: settings.exportAfterEveryEntry,
onToggle: (value) {
settings.exportAfterEveryEntry = value;
@@ -81,7 +81,6 @@ class ExportImportScreen extends StatelessWidget {
title: Text(localizations.fieldDelimiter),
inputWidth: 40,
initialValue: csvExportSettings.fieldDelimiter,
- disabled: !(settings.exportFormat == ExportFormat.csv),
onEditingComplete: (value) {
if (value != null) {
csvExportSettings.fieldDelimiter = value;
@@ -92,7 +91,6 @@ class ExportImportScreen extends StatelessWidget {
title: Text(localizations.textDelimiter),
inputWidth: 40,
initialValue: csvExportSettings.textDelimiter,
- disabled: !(settings.exportFormat == ExportFormat.csv),
onEditingComplete: (value) {
if (value != null) {
csvExportSettings.textDelimiter = value;
@@ -101,9 +99,8 @@ class ExportImportScreen extends StatelessWidget {
),
SwitchSettingsTile(
title: Text(localizations.exportCsvHeadline),
- description: Text(localizations.exportCsvHeadlineDesc),
+ subtitle: Text(localizations.exportCsvHeadlineDesc),
initialValue: csvExportSettings.exportHeadline,
- disabled: settings.exportFormat != ExportFormat.csv,
onToggle: (value) {
csvExportSettings.exportHeadline = value;
}
lib/screens/settings.dart
@@ -250,7 +250,7 @@ class SettingsPage extends StatelessWidget {
SwitchSettingsTile(
title: Text(localizations.drawRegressionLines),
leading: const Icon(Icons.trending_down_outlined),
- description: Text(localizations.drawRegressionLinesDesc),
+ subtitle: Text(localizations.drawRegressionLinesDesc),
initialValue: settings.drawRegressionLines,
onToggle: (value) {
settings.drawRegressionLines = value;
@@ -258,7 +258,7 @@ class SettingsPage extends StatelessWidget {
),
SwitchSettingsTile(
title: Text(localizations.startWithAddMeasurementPage),
- description: Text(localizations.startWithAddMeasurementPageDescription),
+ subtitle: Text(localizations.startWithAddMeasurementPageDescription),
leading: const Icon(Icons.electric_bolt_outlined),
initialValue: settings.startWithAddMeasurementPage,
onToggle: (value) {