Skip to content

Commit

Permalink
#1075 metadata: toggle for all types in removal dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
deckerst committed Feb 3, 2025
1 parent 598b705 commit e14a1a0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ All notable changes to this project will be documented in this file.

### Added

- edit location via GPX
- Metadata: edit location via GPX
- Metadata: toggle for all types in removal dialog

### Changed

Expand Down
1 change: 1 addition & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,7 @@
"editEntryRatingDialogTitle": "Rating",

"removeEntryMetadataDialogTitle": "Metadata Removal",
"removeEntryMetadataDialogAll": "All",
"removeEntryMetadataDialogMore": "More",

"removeEntryMetadataMotionPhotoXmpWarningDialogMessage": "XMP is required to play the video inside a motion photo.\n\nAre you sure you want to remove it?",
Expand Down
21 changes: 16 additions & 5 deletions lib/widgets/dialogs/entry_editors/remove_metadata_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,19 @@ class RemoveEntryMetadataDialog extends StatefulWidget {
}

class _RemoveEntryMetadataDialogState extends State<RemoveEntryMetadataDialog> {
late final List<MetadataType> _mainOptions, _moreOptions;
late final List<MetadataType> _allOptions, _mainOptions, _moreOptions;
final Set<MetadataType> _types = {};
bool _showMore = false;
final ValueNotifier<bool> _isValidNotifier = ValueNotifier(false);

@override
void initState() {
super.initState();
final byMain = groupBy([
_allOptions = [
...MetadataTypes.common,
if (widget.showJpegTypes) ...MetadataTypes.jpeg,
], MetadataTypes.main.contains);
];
final byMain = groupBy(_allOptions, MetadataTypes.main.contains);
_mainOptions = (byMain[true] ?? [])..sort(_compareTypeText);
_moreOptions = (byMain[false] ?? [])..sort(_compareTypeText);
_validate();
Expand All @@ -59,6 +60,17 @@ class _RemoveEntryMetadataDialogState extends State<RemoveEntryMetadataDialog> {
return AvesDialog(
title: l10n.removeEntryMetadataDialogTitle,
scrollableContent: [
SwitchListTile(
value: _types.length == _allOptions.length,
onChanged: (selected) {
selected ? _types.addAll(_allOptions) : _types.clear();
setState(_validate);
},
title: Align(
alignment: Alignment.centerLeft,
child: Text(l10n.removeEntryMetadataDialogAll),
),
),
..._mainOptions.map(_toTile),
if (_moreOptions.isNotEmpty)
Padding(
Expand Down Expand Up @@ -131,8 +143,7 @@ class _RemoveEntryMetadataDialogState extends State<RemoveEntryMetadataDialog> {
value: _types.contains(type),
onChanged: (selected) {
selected ? _types.add(type) : _types.remove(type);
_validate();
setState(() {});
setState(_validate);
},
title: Align(
alignment: Alignment.centerLeft,
Expand Down

0 comments on commit e14a1a0

Please sign in to comment.