Commit 2c92c56

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-11-05 14:33:59
replace SettingsSection widget with new version
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 1add3c7
Changed files (2)
lib
lib/components/settings_widgets.dart
@@ -231,32 +231,35 @@ class DropDownListTile<T> extends StatelessWidget {
   }
 }
 
-class SettingsSection extends StatelessWidget {
+/// A [Column] with a leading title.
+class TitledColumn extends StatelessWidget {
+
+  /// Create a [Column] with a leading title.
+  ///
+  /// Useful for labeling sub lists.
+  const TitledColumn({super.key, required this.title, required this.children});
+
+  /// Title to display above the [children].
+  ///
+  /// Usually a [Text] widget.
   final Widget title;
-  final List<Widget> children;
 
-  const SettingsSection({super.key, required this.title, required this.children});
+  /// Items that get listed.
+  final List<Widget> children;
 
   @override
   Widget build(BuildContext context) {
-    return Column(
-      children: [
-        Container(
-          padding: const EdgeInsets.only(top: 15),
-          child: Align(
-            alignment: const Alignment(-0.93, 0),
-            child: DefaultTextStyle(
-                style: Theme.of(context).textTheme.titleMedium!,
-                child: title),
-          ),
+    final List<Widget> items = [
+      ListTile(
+        title: DefaultTextStyle(
+          style: Theme.of(context).textTheme.titleLarge!,
+          child: title
         ),
-        Container(
-          padding: const EdgeInsets.only(left: 10, right: 20), // TODO: remove
-          child: Column(
-            children: children,
-          ),
-        )
-      ],
+      ),
+    ];
+    items.addAll(children);
+    return Column(
+      children: items,
     );
   }
 }
lib/screens/settings.dart
@@ -37,7 +37,7 @@ class SettingsPage extends StatelessWidget {
       body: Consumer<Settings>(builder: (context, settings, child) {
         return ListView(
           children: [
-            SettingsSection(title: Text(localizations.layout), children: [
+            TitledColumn(title: Text(localizations.layout), children: [
               ListTile(
                 key: const Key('EnterTimeFormatScreen'),
                 title: Text(localizations.enterTimeFormatScreen),
@@ -133,7 +133,7 @@ class SettingsPage extends StatelessWidget {
                 title: Text(localizations.useLegacyList),),
             ]),
 
-            SettingsSection(title: Text(localizations.behavior), children: [
+            TitledColumn(title: Text(localizations.behavior), children: [
               SwitchListTile(
                 key: const Key('allowManualTimeInput'),
                 value: settings.allowManualTimeInput,
@@ -252,7 +252,7 @@ class SettingsPage extends StatelessWidget {
                 }
               ),
             ]),
-            SettingsSection(
+            TitledColumn(
               title: Text(localizations.data),
               children: [
                 ListTile(
@@ -320,7 +320,7 @@ class SettingsPage extends StatelessWidget {
                 )
               ],
             ),
-            SettingsSection(title: Text(localizations.aboutWarnValuesScreen), children: [
+            TitledColumn(title: Text(localizations.aboutWarnValuesScreen), children: [
               ListTile(
                   key: const Key('version'),
                   title: Text(localizations.version),