From 5a19ada15d98d56c325d8ef9710454ebc93df3d9 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 2 Mar 2025 11:39:35 -0600 Subject: [PATCH] refactor settings --- web/repertory/lib/widgets/mount_settings.dart | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/web/repertory/lib/widgets/mount_settings.dart b/web/repertory/lib/widgets/mount_settings.dart index 343d6e24..47f05c8a 100644 --- a/web/repertory/lib/widgets/mount_settings.dart +++ b/web/repertory/lib/widgets/mount_settings.dart @@ -81,6 +81,35 @@ class _MountSettingsWidgetState extends State { ); } + void _addIntListSetting( + list, + root, + key, + value, + List valueList, + defaultValue, + icon, + ) { + list.add( + SettingsTile.navigation( + title: Text(key), + leading: Icon(icon), + value: DropdownButton( + value: value.toString(), + onChanged: (newValue) { + setState(() { + root?[key] = int.parse(newValue ?? defaultValue.toString()); + }); + }, + items: + valueList.map>((item) { + return DropdownMenuItem(value: item, child: Text(item)); + }).toList(), + ), + ), + ); + } + void _addListSetting(list, root, key, value, List valueList, icon) { list.add( SettingsTile.navigation( @@ -213,7 +242,15 @@ class _MountSettingsWidgetState extends State { } else if (key == "RetryReadCount") { _addIntSetting(commonSettings, _settings, key, value); } else if (key == "RingBufferFileSize") { - _addIntSetting(commonSettings, _settings, key, value); + _addIntListSetting( + commonSettings, + _settings, + key, + value, + ["128", "256", "512", "1024", "2048"], + 512, + Icons.animation, + ); } else if (key == "EncryptConfig") { value.forEach((subKey, subValue) { if (subKey == "EncryptionToken") {