Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
69ab902e3b
6 changed files with 15 additions and 13 deletions
|
@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
## <a id="unreleased"></a>[Unreleased]
|
||||
|
||||
### Fixed
|
||||
|
||||
- albums: show groups to move/copy/export items
|
||||
|
||||
## <a id="v1.13.0"></a>[v1.13.0] - 2025-05-12
|
||||
|
||||
### Added
|
||||
|
|
|
@ -46,7 +46,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin {
|
|||
final destinationAlbumFilter = await pickAlbum(
|
||||
context: context,
|
||||
moveType: MoveType.export,
|
||||
albumTypes: {AlbumChipType.stored},
|
||||
albumChipTypes: {AlbumChipType.stored},
|
||||
initialGroup: null,
|
||||
);
|
||||
if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false;
|
||||
|
@ -379,7 +379,7 @@ mixin EntryStorageMixin on FeedbackMixin, PermissionAwareMixin, SizeAwareMixin {
|
|||
final destinationAlbumFilter = await pickAlbum(
|
||||
context: context,
|
||||
moveType: moveType,
|
||||
albumTypes: {AlbumChipType.stored},
|
||||
albumChipTypes: {AlbumChipType.stored},
|
||||
initialGroup: null,
|
||||
);
|
||||
if (destinationAlbumFilter == null || destinationAlbumFilter is! StoredAlbumFilter) return false;
|
||||
|
|
|
@ -40,7 +40,7 @@ import 'package:provider/provider.dart';
|
|||
Future<AlbumBaseFilter?> pickAlbum({
|
||||
required BuildContext context,
|
||||
required MoveType? moveType,
|
||||
required Iterable<AlbumChipType> albumTypes,
|
||||
required Iterable<AlbumChipType> albumChipTypes,
|
||||
required Uri? initialGroup,
|
||||
}) async {
|
||||
final source = context.read<CollectionSource>();
|
||||
|
@ -56,7 +56,7 @@ Future<AlbumBaseFilter?> pickAlbum({
|
|||
builder: (context) => _AlbumPickPage(
|
||||
source: source,
|
||||
moveType: moveType,
|
||||
albumChipTypes: albumTypes,
|
||||
albumChipTypes: albumChipTypes,
|
||||
initialGroup: initialGroup,
|
||||
),
|
||||
),
|
||||
|
|
|
@ -97,7 +97,7 @@ class AlbumListPage extends StatelessWidget {
|
|||
static List<FilterGridItem<AlbumBaseFilter>> getAlbumGridItems(
|
||||
BuildContext context,
|
||||
CollectionSource source,
|
||||
Iterable<AlbumChipType> albumTypes,
|
||||
Iterable<AlbumChipType> albumChipTypes,
|
||||
Uri? groupUri,
|
||||
) {
|
||||
final groupContent = albumGrouping.getDirectChildren(groupUri);
|
||||
|
@ -110,7 +110,7 @@ class AlbumListPage extends StatelessWidget {
|
|||
}
|
||||
|
||||
final listedStoredAlbums = <String>{};
|
||||
if (albumTypes.contains(AlbumChipType.stored)) {
|
||||
if (albumChipTypes.contains(AlbumChipType.stored)) {
|
||||
if (groupUri == null) {
|
||||
final withinGroups = whereTypeRecursively<StoredAlbumFilter>(groupContent).map((v) => v.album).toSet();
|
||||
listedStoredAlbums.addAll(source.rawAlbums.whereNot(withinGroups.contains));
|
||||
|
@ -120,7 +120,7 @@ class AlbumListPage extends StatelessWidget {
|
|||
}
|
||||
|
||||
final listedDynamicAlbums = <DynamicAlbumFilter>{};
|
||||
if (albumTypes.contains(AlbumChipType.dynamic)) {
|
||||
if (albumChipTypes.contains(AlbumChipType.dynamic)) {
|
||||
if (groupUri == null) {
|
||||
final withinGroups = whereTypeRecursively<DynamicAlbumFilter>(groupContent).toSet();
|
||||
listedDynamicAlbums.addAll(dynamicAlbums.all.whereNot(withinGroups.contains));
|
||||
|
@ -129,10 +129,8 @@ class AlbumListPage extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
|
||||
final albumGroupFilters = <AlbumGroupFilter>{};
|
||||
if (albumTypes.contains(AlbumChipType.group)) {
|
||||
albumGroupFilters.addAll(groupContent.whereType<AlbumGroupFilter>());
|
||||
}
|
||||
// always show groups, which are needed to navigate to other types
|
||||
final albumGroupFilters = groupContent.whereType<AlbumGroupFilter>().toSet();
|
||||
|
||||
final filters = <AlbumBaseFilter>{
|
||||
...albumGroupFilters,
|
||||
|
|
|
@ -458,7 +458,7 @@ class AlbumChipSetActionDelegate extends ChipSetActionDelegate<AlbumBaseFilter>
|
|||
final filter = await pickAlbum(
|
||||
context: context,
|
||||
moveType: null,
|
||||
albumTypes: {AlbumChipType.group},
|
||||
albumChipTypes: {AlbumChipType.group},
|
||||
initialGroup: initialGroup,
|
||||
);
|
||||
if (filter == null) return;
|
||||
|
|
|
@ -68,7 +68,7 @@ class _DrawerAlbumTabState extends State<DrawerAlbumTab> {
|
|||
final albumFilter = await pickAlbum(
|
||||
context: context,
|
||||
moveType: null,
|
||||
albumTypes: AlbumChipType.values,
|
||||
albumChipTypes: AlbumChipType.values,
|
||||
initialGroup: null,
|
||||
);
|
||||
if (albumFilter == null || items.contains(albumFilter)) return;
|
||||
|
|
Loading…
Reference in a new issue