feat: make shortcuts list collapsible (#482)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
Julien9969 2025-09-15 21:04:08 +02:00 committed by GitHub
parent a711e133a4
commit 9c31542c95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 35 additions and 23 deletions

View file

@ -1294,6 +1294,7 @@
"usePostersForLibraryIconsDesc": "Show posters instead of icons for libraries",
"offline": "Offline",
"shortCuts": "Shortcuts",
"keyboardShortCuts": "Keyboard shortcuts",
"skipForwardLength": "Skip forward length",
"skipBackLength": "Skip back length",
"playPause": "Play/Pause",

View file

@ -206,29 +206,36 @@ class _PlayerSettingsPageState extends ConsumerState<PlayerSettingsPage> {
)),
),
if (AdaptiveLayout.inputDeviceOf(context) == InputDevice.pointer)
...VideoHotKeys.values.map(
(entry) => Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Row(
children: [
Expanded(
child: Text(
entry.label(context),
style: Theme.of(context).textTheme.titleLarge,
),
),
Flexible(
child: KeyCombinationWidget(
currentKey: videoSettings.hotKeys[entry],
defaultKey: videoSettings.defaultShortCuts[entry]!,
onChanged: (value) =>
ref.read(videoPlayerSettingsProvider.notifier).setShortcuts(MapEntry(entry, value)),
),
)
],
),
ExpansionTile(
title: Text(
context.localized.keyboardShortCuts,
style: Theme.of(context).textTheme.titleLarge,
),
)
children: VideoHotKeys.values.map(
(entry) => Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: Row(
children: [
Expanded(
child: Text(
entry.label(context),
style: Theme.of(context).textTheme.titleMedium,
),
),
Flexible(
child: KeyCombinationWidget(
currentKey: videoSettings.hotKeys[entry],
defaultKey: videoSettings.defaultShortCuts[entry]!,
onChanged: (value) => ref
.read(videoPlayerSettingsProvider.notifier)
.setShortcuts(MapEntry(entry, value)),
),
),
],
),
),
).toList(),
),
],
),
const SizedBox(height: 12),

View file

@ -53,6 +53,10 @@ class FladderTheme {
margin: EdgeInsets.zero,
shape: smallShape,
),
expansionTileTheme: ExpansionTileThemeData(
shape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
collapsedShape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
),
progressIndicatorTheme: const ProgressIndicatorThemeData(),
floatingActionButtonTheme: FloatingActionButtonThemeData(
backgroundColor: scheme?.secondaryContainer,
@ -62,7 +66,7 @@ class FladderTheme {
snackBarTheme: SnackBarThemeData(
backgroundColor: scheme?.secondary,
behavior: SnackBarBehavior.fixed,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
shape: RoundedRectangleBorder(borderRadius: FladderTheme.defaultShape.borderRadius),
elevation: 5,
dismissDirection: DismissDirection.horizontal,
),