File tree Expand file tree Collapse file tree 7 files changed +57
-0
lines changed
Expand file tree Collapse file tree 7 files changed +57
-0
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,7 @@ class _PreviewCardState extends State<PreviewCard> {
7878
7979 @override
8080 Widget build (BuildContext context) {
81+ expanded.value = widget.selected;
8182 final theme = Theme .of (context);
8283 final colorScheme = theme.colorScheme;
8384 final disableAnimations = MediaQuery .disableAnimationsOf (context);
Original file line number Diff line number Diff line change 1+ import 'package:flutter/material.dart' ;
2+ import 'package:saber/i18n/strings.g.dart' ;
3+
4+ class SelectAllNotesButton extends StatelessWidget {
5+ const SelectAllNotesButton ({
6+ super .key,
7+ required this .selectedFiles,
8+ required this .allFiles,
9+ required this .selectAll,
10+ required this .deselectAll,
11+ });
12+
13+ final List <String > selectedFiles;
14+ final List <String > allFiles;
15+ final void Function () selectAll;
16+ final void Function () deselectAll;
17+
18+ bool get areAllFilesSelected {
19+ return selectedFiles.length == allFiles.length;
20+ }
21+
22+ @override
23+ Widget build (BuildContext context) {
24+ return IconButton (
25+ padding: EdgeInsets .zero,
26+ tooltip: areAllFilesSelected ? t.home.deselectAllNotes : t.home.selectAllNotes ,
27+ onPressed: () {
28+ if (areAllFilesSelected)
29+ deselectAll ();
30+ else
31+ selectAll ();
32+ },
33+ icon: Icon (areAllFilesSelected ? Icons .deselect : Icons .select_all),
34+ );
35+ }
36+ }
Original file line number Diff line number Diff line change 4848 renamedTo : Note will be renamed to $newName
4949 multipleRenamedTo : " The following notes will be renamed:"
5050 numberRenamedTo : $n notes will be renamed to avoid conflicts
51+ selectAllNotes : Select all
52+ deselectAllNotes : Deselect all
5153 deleteNote : Delete note
5254 renameFolder :
5355 renameFolder : Rename folder
Original file line number Diff line number Diff line change 4747 renamedTo : La nota verrà rinominata in $newName
4848 multipleRenamedTo : " Le note seguenti verranno rinominate:"
4949 numberRenamedTo : $n le note verranno rinominate per evitare conflitti
50+ selectAllNotes : Seleziona tutto
51+ deselectAllNotes : Deseleziona tutto
5052 deleteNote : Elimina nota
5153 renameFolder :
5254 renameFolder : Rinomina cartella
Original file line number Diff line number Diff line change @@ -77,6 +77,8 @@ class TranslationsHomeEn {
7777 late final TranslationsHomeNewFolderEn newFolder = TranslationsHomeNewFolderEn .internal (_root);
7878 late final TranslationsHomeRenameNoteEn renameNote = TranslationsHomeRenameNoteEn .internal (_root);
7979 late final TranslationsHomeMoveNoteEn moveNote = TranslationsHomeMoveNoteEn .internal (_root);
80+ String get selectAllNotes => 'Select all' ;
81+ String get deselectAllNotes => 'Deselect all' ;
8082 String get deleteNote => 'Delete note' ;
8183 late final TranslationsHomeRenameFolderEn renameFolder = TranslationsHomeRenameFolderEn .internal (_root);
8284 late final TranslationsHomeDeleteFolderEn deleteFolder = TranslationsHomeDeleteFolderEn .internal (_root);
Original file line number Diff line number Diff line change @@ -74,6 +74,8 @@ class _TranslationsHomeIt extends TranslationsHomeEn {
7474 @override late final _TranslationsHomeNewFolderIt newFolder = _TranslationsHomeNewFolderIt ._(_root);
7575 @override late final _TranslationsHomeRenameNoteIt renameNote = _TranslationsHomeRenameNoteIt ._(_root);
7676 @override late final _TranslationsHomeMoveNoteIt moveNote = _TranslationsHomeMoveNoteIt ._(_root);
77+ @override String get selectAllNotes => 'Seleziona tutto' ;
78+ @override String get deselectAllNotes => 'Deseleziona tutto' ;
7779 @override String get deleteNote => 'Elimina nota' ;
7880 @override late final _TranslationsHomeRenameFolderIt renameFolder = _TranslationsHomeRenameFolderIt ._(_root);
7981 @override late final _TranslationsHomeDeleteFolderIt deleteFolder = _TranslationsHomeDeleteFolderIt ._(_root);
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ import 'package:saber/components/home/masonry_files.dart';
99import 'package:saber/components/home/move_note_button.dart' ;
1010import 'package:saber/components/home/new_note_button.dart' ;
1111import 'package:saber/components/home/rename_note_button.dart' ;
12+ import 'package:saber/components/home/select_all_button.dart' ;
1213import 'package:saber/components/home/syncing_button.dart' ;
1314import 'package:saber/components/home/welcome.dart' ;
1415import 'package:saber/data/file_manager/file_manager.dart' ;
@@ -203,6 +204,17 @@ class _RecentPageState extends State<RecentPage> {
203204 },
204205 icon: const Icon (Icons .delete_forever),
205206 ),
207+ SelectAllNotesButton (
208+ selectedFiles: selectedFiles.value,
209+ allFiles: filePaths,
210+ selectAll: () => {
211+ selectedFiles.value.clear (),
212+ for (String file in filePaths)
213+ selectedFiles.value.add (file),
214+ setState (() {}),
215+ },
216+ deselectAll: () => selectedFiles.value = [],
217+ ),
206218 ExportNoteButton (
207219 selectedFiles: selectedFiles.value,
208220 ),
You can’t perform that action at this time.
0 commit comments