Add settings to adjust thumbnail display

This commit is contained in:
2024-06-09 07:42:19 +00:00
committed by GitHub
parent ba0d5d509e
commit 5c455298c6
7 changed files with 187 additions and 31 deletions

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import '../api/client.dart';
import '../api/file.dart';
import '../api/gallery.dart';
import '../globals.dart';
@@ -27,6 +28,18 @@ class ThumbnailGridView extends StatelessWidget {
displayAd ? gdata.pages : gdata.pages.where((e) => !e.isAd).toList();
final baseSize = gridDelegate.maxCrossAxisExtent.toInt();
final max = (baseSize * MediaQuery.of(context).devicePixelRatio).toInt();
final tgen = prefs.getInt("thumbnailMethod") ?? 0;
final gen = tgen >= 0 && tgen < ThumbnailGenMethod.values.length
? ThumbnailGenMethod.values[tgen]
: ThumbnailGenMethod.unknown;
final talign = prefs.getInt("thumbnailAlign") ?? 1;
final align = talign >= 0 && talign < ThumbnailAlign.values.length
? ThumbnailAlign.values[talign]
: ThumbnailAlign.center;
final isDefault = gen == ThumbnailGenMethod.unknown;
final alignUseless = isDefault || gen == ThumbnailGenMethod.fill;
final methodKey =
alignUseless ? "${align.index}" : "${align.index}-${align.index}";
return SliverGrid.builder(
gridDelegate: gridDelegate,
itemCount: npages.length,
@@ -34,7 +47,8 @@ class ThumbnailGridView extends StatelessWidget {
final page = npages[index]!;
final fileId =
files != null ? files!.files[page.token]!.firstOrNull?.id : null;
final key = Key("thumbnail$gid-${page.index}-$fileId-$max");
final key =
Key("thumbnail$gid-${page.index}-$fileId-$max-$methodKey");
return Container(
padding: const EdgeInsets.all(4),
child: Thumbnail(
@@ -58,6 +72,10 @@ class ThumbnailGridView extends StatelessWidget {
}
},
max: max,
width: isDefault ? null : max,
height: isDefault ? null : max,
method: isDefault ? null : gen,
align: alignUseless ? null : align,
));
});
}