diff --git a/client/lib/app.dart b/client/lib/app.dart index bc06be87..2ec88933 100644 --- a/client/lib/app.dart +++ b/client/lib/app.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_state_notifier/flutter_state_notifier.dart'; import 'package:go_router/go_router.dart'; import 'package:offtheline/offtheline.dart'; -import 'package:phylum/app_shortcut_manager.dart'; +import 'package:phylum/app_shortcuts.dart'; import 'package:phylum/ui/home_page.dart'; import 'package:phylum/libphylum/phylum_account.dart'; import 'package:provider/provider.dart'; diff --git a/client/lib/app_shortcut_manager.dart b/client/lib/app_shortcuts.dart similarity index 82% rename from client/lib/app_shortcut_manager.dart rename to client/lib/app_shortcuts.dart index 17d276b8..da88edbd 100644 --- a/client/lib/app_shortcut_manager.dart +++ b/client/lib/app_shortcuts.dart @@ -21,6 +21,14 @@ class ToggleSelectionIntent extends Intent { const ToggleSelectionIntent(); } +class ClearSelectionIntent extends Intent { + const ClearSelectionIntent(); +} + +class SelectAllIntent extends Intent { + const SelectAllIntent(); +} + class OpenIntent extends Intent { const OpenIntent(); } @@ -40,5 +48,7 @@ Map getAppShortcuts() { SingleActivator(LogicalKeyboardKey.space, control: true): ToggleSelectionIntent(), SingleActivator(LogicalKeyboardKey.enter): OpenIntent(), SingleActivator(LogicalKeyboardKey.arrowUp, alt: true): NavUpIntent(), + SingleActivator(LogicalKeyboardKey.escape): ClearSelectionIntent(), + SingleActivator(LogicalKeyboardKey.keyA, control: true): SelectAllIntent(), }; } diff --git a/client/lib/ui/folder/folder_contents_view.dart b/client/lib/ui/folder/folder_contents_view.dart index e4cf4cff..6014ac10 100644 --- a/client/lib/ui/folder/folder_contents_view.dart +++ b/client/lib/ui/folder/folder_contents_view.dart @@ -2,7 +2,7 @@ import 'dart:math'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:phylum/app_shortcut_manager.dart'; +import 'package:phylum/app_shortcuts.dart'; import 'package:phylum/libphylum/db/db.dart'; import 'package:phylum/ui/folder/folder_navigator_stack.dart'; import 'package:phylum/ui/folder/folder_selection_manager.dart'; @@ -68,6 +68,14 @@ class _FolderContentsViewState extends State { toggleSelection(); return null; }), + SelectAllIntent: CallbackAction(onInvoke: (i) { + context.read().setSelected(Set.of(resources.map((r) => r.id))); + return null; + }), + ClearSelectionIntent: CallbackAction(onInvoke: (i) { + context.read().setSelected(const {}); + return null; + }), OpenIntent: CallbackAction(onInvoke: (i) { open(resources[focusIndex]); return null;