mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-26 17:04:43 +01:00
Ensure isEditMode is false when calling done
This commit is contained in:
parent
a07fb0d9a4
commit
8eef2a2084
3 changed files with 54 additions and 51 deletions
|
@ -104,9 +104,11 @@ class _AlbumViewerState extends State<AlbumViewer>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
validateEditMode() => _editFormKey?.currentState?.validate() == true;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
doneEditMode() {
|
doneEditMode() {
|
||||||
if (_editFormKey?.currentState?.validate() == true) {
|
|
||||||
try {
|
try {
|
||||||
// persist the changes
|
// persist the changes
|
||||||
_editFormKey.currentState.save();
|
_editFormKey.currentState.save();
|
||||||
|
@ -127,7 +129,6 @@ class _AlbumViewerState extends State<AlbumViewer>
|
||||||
} else {
|
} else {
|
||||||
_log.fine("[doneEditMode] Album not modified");
|
_log.fine("[doneEditMode] Album not modified");
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
} finally {
|
} finally {
|
||||||
setState(() {
|
setState(() {
|
||||||
// reset edits
|
// reset edits
|
||||||
|
@ -137,8 +138,6 @@ class _AlbumViewerState extends State<AlbumViewer>
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void _initAlbum() {
|
void _initAlbum() {
|
||||||
assert(widget.album.provider is AlbumStaticProvider);
|
assert(widget.album.provider is AlbumStaticProvider);
|
||||||
|
|
|
@ -168,10 +168,11 @@ mixin AlbumViewerMixin<T extends StatefulWidget>
|
||||||
color: Theme.of(context).colorScheme.primary,
|
color: Theme.of(context).colorScheme.primary,
|
||||||
tooltip: AppLocalizations.of(context).doneButtonTooltip,
|
tooltip: AppLocalizations.of(context).doneButtonTooltip,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
if (doneEditMode()) {
|
if (validateEditMode()) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_isEditMode = false;
|
_isEditMode = false;
|
||||||
});
|
});
|
||||||
|
doneEditMode();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -186,8 +187,12 @@ mixin AlbumViewerMixin<T extends StatefulWidget>
|
||||||
@mustCallSuper
|
@mustCallSuper
|
||||||
void enterEditMode() {}
|
void enterEditMode() {}
|
||||||
|
|
||||||
|
/// Validates the pending modifications
|
||||||
@protected
|
@protected
|
||||||
bool doneEditMode();
|
bool validateEditMode();
|
||||||
|
|
||||||
|
@protected
|
||||||
|
void doneEditMode();
|
||||||
|
|
||||||
/// Return a new album with the edits
|
/// Return a new album with the edits
|
||||||
@protected
|
@protected
|
||||||
|
|
|
@ -90,9 +90,11 @@ class _DynamicAlbumViewerState extends State<DynamicAlbumViewer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
validateEditMode() => _editFormKey?.currentState?.validate() == true;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
doneEditMode() {
|
doneEditMode() {
|
||||||
if (_editFormKey?.currentState?.validate() == true) {
|
|
||||||
_editFormKey.currentState.save();
|
_editFormKey.currentState.save();
|
||||||
final newAlbum = makeEdited(_album);
|
final newAlbum = makeEdited(_album);
|
||||||
if (newAlbum.copyWith(lastUpdated: _album.lastUpdated) != _album) {
|
if (newAlbum.copyWith(lastUpdated: _album.lastUpdated) != _album) {
|
||||||
|
@ -111,9 +113,6 @@ class _DynamicAlbumViewerState extends State<DynamicAlbumViewer>
|
||||||
} else {
|
} else {
|
||||||
_log.fine("[doneEditMode] Album not modified");
|
_log.fine("[doneEditMode] Album not modified");
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initAlbum() {
|
void _initAlbum() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue