From cc200fb0c67b530286501e2247b9625393d56ebd Mon Sep 17 00:00:00 2001 From: Aditish51 Date: Sun, 17 Mar 2024 00:18:19 +0530 Subject: [PATCH 1/2] Added feature of dropdowns in settings_page.py should strictly allow selection and no other interaction --- lib/screens/settings_page.dart | 71 ++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 24 deletions(-) diff --git a/lib/screens/settings_page.dart b/lib/screens/settings_page.dart index 4a7cb302..78a1a5eb 100644 --- a/lib/screens/settings_page.dart +++ b/lib/screens/settings_page.dart @@ -66,40 +66,63 @@ class SettingsPage extends ConsumerWidget { title: const Text('Default URI Scheme'), subtitle: Text( 'api.foss42.com → ${settings.defaultUriScheme}://api.foss42.com'), - trailing: DropdownMenu( - onSelected: (value) { + trailing: Container( + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 2.0), // Adjust border width as needed + borderRadius: BorderRadius.circular(8.0), // Adjust border radius as needed + ), + child: DropdownButton( + onChanged: (value) { ref - .read(settingsProvider.notifier) - .update(defaultUriScheme: value); + .read(settingsProvider.notifier) + .update(defaultUriScheme: value); }, - initialSelection: settings.defaultUriScheme, - dropdownMenuEntries: kSupportedUriSchemes - .map>((value) { - return DropdownMenuEntry( + value: settings.defaultUriScheme, + items: kSupportedUriSchemes.map>((String value) { + return DropdownMenuItem( value: value, - label: value, + child: Padding( + padding: EdgeInsets.symmetric(vertical: 8, horizontal: 16), // Adjust padding to increase size + child: Text(value), + ), ); - }).toList()), + }).toList(), + underline: Container(), + iconSize: 30, + + ), + ), ), + ListTile( contentPadding: kPb10, hoverColor: kColorTransparent, title: const Text('Default Code Generator'), - trailing: DropdownMenu( - onSelected: (value) { - ref - .read(settingsProvider.notifier) - .update(defaultCodeGenLang: value); - }, - initialSelection: settings.defaultCodeGenLang, - dropdownMenuEntries: CodegenLanguage.values - .map>((value) { - return DropdownMenuEntry( - value: value, - label: value.label, - ); - }).toList()), + trailing: Container( + padding: EdgeInsets.symmetric(vertical: 8, horizontal: 15), // Adjust padding to increase size + decoration: BoxDecoration( + border: Border.all(color: Colors.grey, width: 2.0), // Add border styling + borderRadius: BorderRadius.circular(5), // Optional: Add border radius + ), + child: DropdownButtonHideUnderline( // Hide the default underline + child: DropdownButton( + value: settings.defaultCodeGenLang, + onChanged: (value) { + ref + .read(settingsProvider.notifier) + .update(defaultCodeGenLang: value); + }, + items: CodegenLanguage.values.map((value) { + return DropdownMenuItem( + value: value, + child: Text(value.label), + ); + }).toList(), + onTap: () {}, // Prevent dropdown from opening on tap + ), + ), ), + ), CheckboxListTile( contentPadding: EdgeInsets.zero, title: const Text("Save Responses"), From 4548e1dd67da9296712ed998b671adeef719310a Mon Sep 17 00:00:00 2001 From: Ankit Mahato Date: Sun, 17 Mar 2024 01:25:50 +0530 Subject: [PATCH 2/2] fixes --- lib/screens/settings_page.dart | 66 ++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/lib/screens/settings_page.dart b/lib/screens/settings_page.dart index 46691a13..8bdf6580 100644 --- a/lib/screens/settings_page.dart +++ b/lib/screens/settings_page.dart @@ -68,44 +68,48 @@ class SettingsPage extends ConsumerWidget { '$kDefaultUri → ${settings.defaultUriScheme}://$kDefaultUri'), trailing: Container( decoration: BoxDecoration( - border: Border.all(color: Colors.grey, width: 2.0), // Adjust border width as needed - borderRadius: BorderRadius.circular(8.0), // Adjust border radius as needed + border: Border.all( + color: Theme.of(context).colorScheme.onSurface, + ), + borderRadius: kBorderRadius8, ), - child: DropdownButton( - onChanged: (value) { - ref - .read(settingsProvider.notifier) - .update(defaultUriScheme: value); - }, - value: settings.defaultUriScheme, - items: kSupportedUriSchemes.map>((String value) { - return DropdownMenuItem( - value: value, - child: Padding( - padding: EdgeInsets.symmetric(vertical: 8, horizontal: 16), // Adjust padding to increase size - child: Text(value), - ), - ); - }).toList(), - underline: Container(), - iconSize: 30, - + child: DropdownButtonHideUnderline( + child: DropdownButton( + borderRadius: kBorderRadius8, + onChanged: (value) { + ref + .read(settingsProvider.notifier) + .update(defaultUriScheme: value); + }, + value: settings.defaultUriScheme, + items: kSupportedUriSchemes + .map>((String value) { + return DropdownMenuItem( + value: value, + child: Padding( + padding: kP10, + child: Text(value), + ), + ); + }).toList(), + ), ), ), ), - ListTile( contentPadding: kPb10, hoverColor: kColorTransparent, title: const Text('Default Code Generator'), trailing: Container( - padding: EdgeInsets.symmetric(vertical: 8, horizontal: 15), // Adjust padding to increase size decoration: BoxDecoration( - border: Border.all(color: Colors.grey, width: 2.0), // Add border styling - borderRadius: BorderRadius.circular(5), // Optional: Add border radius + border: Border.all( + color: Theme.of(context).colorScheme.onSurface, + ), + borderRadius: kBorderRadius8, ), - child: DropdownButtonHideUnderline( // Hide the default underline + child: DropdownButtonHideUnderline( child: DropdownButton( + borderRadius: kBorderRadius8, value: settings.defaultCodeGenLang, onChanged: (value) { ref @@ -115,14 +119,16 @@ class SettingsPage extends ConsumerWidget { items: CodegenLanguage.values.map((value) { return DropdownMenuItem( value: value, - child: Text(value.label), + child: Padding( + padding: kP10, + child: Text(value.label), + ), ); }).toList(), - onTap: () {}, // Prevent dropdown from opening on tap - ), + ), + ), ), ), - ), CheckboxListTile( contentPadding: EdgeInsets.zero, title: const Text("Save Responses"),