option to hide confirmation message after moving items to the bin

This commit is contained in:
Thibault Deckers 2022-08-12 20:07:57 +02:00
parent 6dc2d81027
commit c1a176d389
9 changed files with 42 additions and 9 deletions

View file

@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- Viewer: optional gesture to show previous/next item - Viewer: optional gesture to show previous/next item
- Albums / Countries / Tags: live title filter - Albums / Countries / Tags: live title filter
- option to hide confirmation message after moving items to the bin
### Changed ### Changed

View file

@ -630,6 +630,7 @@
"settingsConfirmationDialogDeleteItems": "Ask before deleting items forever", "settingsConfirmationDialogDeleteItems": "Ask before deleting items forever",
"settingsConfirmationDialogMoveToBinItems": "Ask before moving items to the recycle bin", "settingsConfirmationDialogMoveToBinItems": "Ask before moving items to the recycle bin",
"settingsConfirmationDialogMoveUndatedItems": "Ask before moving undated items", "settingsConfirmationDialogMoveUndatedItems": "Ask before moving undated items",
"settingsConfirmationAfterMoveToBinItems": "Show message after moving items to the recycle bin",
"settingsNavigationDrawerTile": "Navigation menu", "settingsNavigationDrawerTile": "Navigation menu",
"settingsNavigationDrawerEditorTitle": "Navigation Menu", "settingsNavigationDrawerEditorTitle": "Navigation Menu",

View file

@ -450,6 +450,7 @@
"settingsConfirmationDialogDeleteItems": "Suppression définitive déléments", "settingsConfirmationDialogDeleteItems": "Suppression définitive déléments",
"settingsConfirmationDialogMoveToBinItems": "Mise déléments à la corbeille", "settingsConfirmationDialogMoveToBinItems": "Mise déléments à la corbeille",
"settingsConfirmationDialogMoveUndatedItems": "Déplacement déléments non datés", "settingsConfirmationDialogMoveUndatedItems": "Déplacement déléments non datés",
"settingsConfirmationAfterMoveToBinItems": "Confirmation après mise déléments à la corbeille",
"settingsNavigationDrawerTile": "Menu de navigation", "settingsNavigationDrawerTile": "Menu de navigation",
"settingsNavigationDrawerEditorTitle": "Menu de navigation", "settingsNavigationDrawerEditorTitle": "Menu de navigation",

View file

@ -450,6 +450,7 @@
"settingsConfirmationDialogDeleteItems": "항목을 완전히 삭제 시", "settingsConfirmationDialogDeleteItems": "항목을 완전히 삭제 시",
"settingsConfirmationDialogMoveToBinItems": "항목을 휴지통으로 이동 시", "settingsConfirmationDialogMoveToBinItems": "항목을 휴지통으로 이동 시",
"settingsConfirmationDialogMoveUndatedItems": "날짜가 지정되지 않은 항목을 이동 시", "settingsConfirmationDialogMoveUndatedItems": "날짜가 지정되지 않은 항목을 이동 시",
"settingsConfirmationAfterMoveToBinItems": "항목을 휴지통으로 이동 후",
"settingsNavigationDrawerTile": "탐색 메뉴", "settingsNavigationDrawerTile": "탐색 메뉴",
"settingsNavigationDrawerEditorTitle": "탐색 메뉴", "settingsNavigationDrawerEditorTitle": "탐색 메뉴",

View file

@ -35,6 +35,7 @@ class SettingsDefaults {
static const confirmDeleteForever = true; static const confirmDeleteForever = true;
static const confirmMoveToBin = true; static const confirmMoveToBin = true;
static const confirmMoveUndatedItems = true; static const confirmMoveUndatedItems = true;
static const confirmAfterMoveToBin = true;
static const setMetadataDateBeforeFileOp = false; static const setMetadataDateBeforeFileOp = false;
static final drawerTypeBookmarks = [ static final drawerTypeBookmarks = [
null, null,

View file

@ -65,6 +65,7 @@ class Settings extends ChangeNotifier {
static const confirmDeleteForeverKey = 'confirm_delete_forever'; static const confirmDeleteForeverKey = 'confirm_delete_forever';
static const confirmMoveToBinKey = 'confirm_move_to_bin'; static const confirmMoveToBinKey = 'confirm_move_to_bin';
static const confirmMoveUndatedItemsKey = 'confirm_move_undated_items'; static const confirmMoveUndatedItemsKey = 'confirm_move_undated_items';
static const confirmAfterMoveToBinKey = 'confirm_after_move_to_bin';
static const setMetadataDateBeforeFileOpKey = 'set_metadata_date_before_file_op'; static const setMetadataDateBeforeFileOpKey = 'set_metadata_date_before_file_op';
static const drawerTypeBookmarksKey = 'drawer_type_bookmarks'; static const drawerTypeBookmarksKey = 'drawer_type_bookmarks';
static const drawerAlbumBookmarksKey = 'drawer_album_bookmarks'; static const drawerAlbumBookmarksKey = 'drawer_album_bookmarks';
@ -351,6 +352,10 @@ class Settings extends ChangeNotifier {
set confirmMoveUndatedItems(bool newValue) => setAndNotify(confirmMoveUndatedItemsKey, newValue); set confirmMoveUndatedItems(bool newValue) => setAndNotify(confirmMoveUndatedItemsKey, newValue);
bool get confirmAfterMoveToBin => getBoolOrDefault(confirmAfterMoveToBinKey, SettingsDefaults.confirmAfterMoveToBin);
set confirmAfterMoveToBin(bool newValue) => setAndNotify(confirmAfterMoveToBinKey, newValue);
bool get setMetadataDateBeforeFileOp => getBoolOrDefault(setMetadataDateBeforeFileOpKey, SettingsDefaults.setMetadataDateBeforeFileOp); bool get setMetadataDateBeforeFileOp => getBoolOrDefault(setMetadataDateBeforeFileOpKey, SettingsDefaults.setMetadataDateBeforeFileOp);
set setMetadataDateBeforeFileOp(bool newValue) => setAndNotify(setMetadataDateBeforeFileOpKey, newValue); set setMetadataDateBeforeFileOp(bool newValue) => setAndNotify(setMetadataDateBeforeFileOpKey, newValue);
@ -811,6 +816,7 @@ class Settings extends ChangeNotifier {
case confirmDeleteForeverKey: case confirmDeleteForeverKey:
case confirmMoveToBinKey: case confirmMoveToBinKey:
case confirmMoveUndatedItemsKey: case confirmMoveUndatedItemsKey:
case confirmAfterMoveToBinKey:
case setMetadataDateBeforeFileOpKey: case setMetadataDateBeforeFileOpKey:
case showThumbnailFavouriteKey: case showThumbnailFavouriteKey:
case showThumbnailTagKey: case showThumbnailTagKey:

View file

@ -197,11 +197,14 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin {
); );
} }
} }
showFeedback(
context, if (!toBin || (toBin && settings.confirmAfterMoveToBin)) {
copy ? l10n.collectionCopySuccessFeedback(count) : l10n.collectionMoveSuccessFeedback(count), showFeedback(
action, context,
); copy ? l10n.collectionCopySuccessFeedback(count) : l10n.collectionMoveSuccessFeedback(count),
action,
);
}
EntryMovedNotification(moveType, movedEntries).dispatch(context); EntryMovedNotification(moveType, movedEntries).dispatch(context);
onSuccess?.call(); onSuccess?.call();

View file

@ -10,26 +10,33 @@ class ConfirmationDialogPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final l10n = context.l10n;
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: Text(context.l10n.settingsConfirmationDialogTitle), title: Text(l10n.settingsConfirmationDialogTitle),
), ),
body: SafeArea( body: SafeArea(
child: ListView(children: [ child: ListView(children: [
SettingsSwitchListTile( SettingsSwitchListTile(
selector: (context, s) => s.confirmMoveUndatedItems, selector: (context, s) => s.confirmMoveUndatedItems,
onChanged: (v) => settings.confirmMoveUndatedItems = v, onChanged: (v) => settings.confirmMoveUndatedItems = v,
title: context.l10n.settingsConfirmationDialogMoveUndatedItems, title: l10n.settingsConfirmationDialogMoveUndatedItems,
), ),
SettingsSwitchListTile( SettingsSwitchListTile(
selector: (context, s) => s.confirmMoveToBin, selector: (context, s) => s.confirmMoveToBin,
onChanged: (v) => settings.confirmMoveToBin = v, onChanged: (v) => settings.confirmMoveToBin = v,
title: context.l10n.settingsConfirmationDialogMoveToBinItems, title: l10n.settingsConfirmationDialogMoveToBinItems,
), ),
SettingsSwitchListTile( SettingsSwitchListTile(
selector: (context, s) => s.confirmDeleteForever, selector: (context, s) => s.confirmDeleteForever,
onChanged: (v) => settings.confirmDeleteForever = v, onChanged: (v) => settings.confirmDeleteForever = v,
title: context.l10n.settingsConfirmationDialogDeleteItems, title: l10n.settingsConfirmationDialogDeleteItems,
),
const Divider(height: 32),
SettingsSwitchListTile(
selector: (context, s) => s.confirmAfterMoveToBin,
onChanged: (v) => settings.confirmAfterMoveToBin = v,
title: l10n.settingsConfirmationAfterMoveToBinItems,
), ),
]), ]),
), ),

View file

@ -1,21 +1,29 @@
{ {
"de": [ "de": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
"es": [
"settingsConfirmationAfterMoveToBinItems"
],
"fr": [ "fr": [
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
"id": [ "id": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
"it": [ "it": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
"ja": [ "ja": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
@ -24,11 +32,13 @@
], ],
"pt": [ "pt": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
], ],
"ru": [ "ru": [
"filterOnThisDayLabel", "filterOnThisDayLabel",
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext", "settingsViewerGestureSideTapNext",
"settingsSlideshowFillScreen", "settingsSlideshowFillScreen",
"settingsScreenSaverPageTitle", "settingsScreenSaverPageTitle",
@ -51,6 +61,7 @@
"wallpaperTargetLock", "wallpaperTargetLock",
"wallpaperTargetHomeLock", "wallpaperTargetHomeLock",
"menuActionSlideshow", "menuActionSlideshow",
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext", "settingsViewerGestureSideTapNext",
"settingsViewerSlideshowTile", "settingsViewerSlideshowTile",
"settingsViewerSlideshowTitle", "settingsViewerSlideshowTitle",
@ -70,6 +81,7 @@
], ],
"zh": [ "zh": [
"settingsConfirmationAfterMoveToBinItems",
"settingsViewerGestureSideTapNext" "settingsViewerGestureSideTapNext"
] ]
} }