File tree Expand file tree Collapse file tree 8 files changed +58
-1
lines changed
Expand file tree Collapse file tree 8 files changed +58
-1
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,7 @@ class _PreviewCardState extends State<PreviewCard> {
7272
7373 @override
7474 Widget build (BuildContext context) {
75+ expanded.value = widget.selected;
7576 final theme = Theme .of (context);
7677 final colorScheme = theme.colorScheme;
7778 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 4747 renamedTo : Note will be renamed to $newName
4848 multipleRenamedTo : " The following notes will be renamed:"
4949 numberRenamedTo : $n notes will be renamed to avoid conflicts
50+ selectAllNotes : Select all
51+ deselectAllNotes : Deselect all
5052 deleteNote : Delete note
5153 renameFolder :
5254 renameFolder : Rename folder
Original file line number Diff line number Diff line change @@ -74,6 +74,8 @@ class TranslationsHomeEn {
7474 late final TranslationsHomeNewFolderEn newFolder = TranslationsHomeNewFolderEn .internal (_root);
7575 late final TranslationsHomeRenameNoteEn renameNote = TranslationsHomeRenameNoteEn .internal (_root);
7676 late final TranslationsHomeMoveNoteEn moveNote = TranslationsHomeMoveNoteEn .internal (_root);
77+ String get selectAllNotes => 'Select all' ;
78+ String get deselectAllNotes => 'Deselect all' ;
7779 String get deleteNote => 'Delete note' ;
7880 late final TranslationsHomeRenameFolderEn renameFolder = TranslationsHomeRenameFolderEn .internal (_root);
7981 late final TranslationsHomeDeleteFolderEn deleteFolder = TranslationsHomeDeleteFolderEn .internal (_root);
Original file line number Diff line number Diff line change @@ -71,6 +71,8 @@ class _TranslationsHomeIt extends TranslationsHomeEn {
7171 @override late final _TranslationsHomeNewFolderIt newFolder = _TranslationsHomeNewFolderIt ._(_root);
7272 @override late final _TranslationsHomeRenameNoteIt renameNote = _TranslationsHomeRenameNoteIt ._(_root);
7373 @override late final _TranslationsHomeMoveNoteIt moveNote = _TranslationsHomeMoveNoteIt ._(_root);
74+ @override String get selectAllNotes => 'Seleziona tutto' ;
75+ @override String get deselectAllNotes => 'Deseleziona tutto' ;
7476 @override String get deleteNote => 'Elimina nota' ;
7577 @override late final _TranslationsHomeRenameFolderIt renameFolder = _TranslationsHomeRenameFolderIt ._(_root);
7678 @override late final _TranslationsHomeDeleteFolderIt deleteFolder = _TranslationsHomeDeleteFolderIt ._(_root);
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 @@ -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 ),
Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ dependencies:
8787 defer_pointer : ^0.0.2
8888
8989 permission_handler : ^11.3.1
90- saver_gallery : ^4 .0.0
90+ saver_gallery : 3 .0.5
9191
9292 animations : ^2.0.7
9393
You can’t perform that action at this time.
0 commit comments