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 @@ -78,6 +78,7 @@ class _PreviewCardState extends State<PreviewCard> {
78
78
79
79
@override
80
80
Widget build (BuildContext context) {
81
+ expanded.value = widget.selected;
81
82
final theme = Theme .of (context);
82
83
final colorScheme = theme.colorScheme;
83
84
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 47
47
renamedTo : Note will be renamed to $newName
48
48
multipleRenamedTo : " The following notes will be renamed:"
49
49
numberRenamedTo : $n notes will be renamed to avoid conflicts
50
+ selectAllNotes : Select all
51
+ deselectAllNotes : Deselect all
50
52
deleteNote : Delete note
51
53
renameFolder :
52
54
renameFolder : Rename folder
Original file line number Diff line number Diff line change @@ -74,6 +74,8 @@ class TranslationsHomeEn {
74
74
late final TranslationsHomeNewFolderEn newFolder = TranslationsHomeNewFolderEn .internal (_root);
75
75
late final TranslationsHomeRenameNoteEn renameNote = TranslationsHomeRenameNoteEn .internal (_root);
76
76
late final TranslationsHomeMoveNoteEn moveNote = TranslationsHomeMoveNoteEn .internal (_root);
77
+ String get selectAllNotes => 'Select all' ;
78
+ String get deselectAllNotes => 'Deselect all' ;
77
79
String get deleteNote => 'Delete note' ;
78
80
late final TranslationsHomeRenameFolderEn renameFolder = TranslationsHomeRenameFolderEn .internal (_root);
79
81
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 {
71
71
@override late final _TranslationsHomeNewFolderIt newFolder = _TranslationsHomeNewFolderIt ._(_root);
72
72
@override late final _TranslationsHomeRenameNoteIt renameNote = _TranslationsHomeRenameNoteIt ._(_root);
73
73
@override late final _TranslationsHomeMoveNoteIt moveNote = _TranslationsHomeMoveNoteIt ._(_root);
74
+ @override String get selectAllNotes => 'Seleziona tutto' ;
75
+ @override String get deselectAllNotes => 'Deseleziona tutto' ;
74
76
@override String get deleteNote => 'Elimina nota' ;
75
77
@override late final _TranslationsHomeRenameFolderIt renameFolder = _TranslationsHomeRenameFolderIt ._(_root);
76
78
@override late final _TranslationsHomeDeleteFolderIt deleteFolder = _TranslationsHomeDeleteFolderIt ._(_root);
Original file line number Diff line number Diff line change 47
47
renamedTo : La nota verrà rinominata in $newName
48
48
multipleRenamedTo : " Le note seguenti verranno rinominate:"
49
49
numberRenamedTo : $n le note verranno rinominate per evitare conflitti
50
+ selectAllNotes : Seleziona tutto
51
+ deselectAllNotes : Deseleziona tutto
50
52
deleteNote : Elimina nota
51
53
renameFolder :
52
54
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';
9
9
import 'package:saber/components/home/move_note_button.dart' ;
10
10
import 'package:saber/components/home/new_note_button.dart' ;
11
11
import 'package:saber/components/home/rename_note_button.dart' ;
12
+ import 'package:saber/components/home/select_all_button.dart' ;
12
13
import 'package:saber/components/home/syncing_button.dart' ;
13
14
import 'package:saber/components/home/welcome.dart' ;
14
15
import 'package:saber/data/file_manager/file_manager.dart' ;
@@ -203,6 +204,17 @@ class _RecentPageState extends State<RecentPage> {
203
204
},
204
205
icon: const Icon (Icons .delete_forever),
205
206
),
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
+ ),
206
218
ExportNoteButton (
207
219
selectedFiles: selectedFiles.value,
208
220
),
Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ dependencies:
87
87
defer_pointer : ^0.0.2
88
88
89
89
permission_handler : ^11.3.1
90
- saver_gallery : ^4 .0.0
90
+ saver_gallery : 3 .0.5
91
91
92
92
animations : ^2.0.7
93
93
You can’t perform that action at this time.
0 commit comments