新增毛玻璃主题

This commit is contained in:
DelLevin-Home
2026-08-12 22:28:33 +08:00
parent be3299a0b3
commit ad6ab51afd
78 changed files with 672 additions and 237 deletions

View File

@@ -16,6 +16,7 @@ import '../../widgets/genre_selector_page.dart';
import '../../widgets/text_input_panel.dart';
import '../../widgets/duration_picker.dart';
import '../../widgets/alternate_titles_dialog.dart';
import '../../widgets/app_overlay.dart';
/// 从多值字段列表中提取去重排序的唯一值(供 compute 使用)
List<String> _collectUnique(List<List<String>> lists) {
@@ -147,7 +148,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
void _showQuickAddDialog() {
final textController = TextEditingController();
showDialog(
appDialog(
context: context,
builder: (dialogContext) {
final colors = Theme.of(dialogContext).colorScheme;
@@ -748,7 +749,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
/// 编辑名称(弹窗)
Future<void> _editTitle() async {
final controller = TextEditingController(text: _titleController.text);
final result = await showDialog<String>(
final result = await appDialog<String>(
context: context,
builder: (ctx) {
final colors = Theme.of(ctx).colorScheme;
@@ -796,7 +797,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
/// 编辑别名(弹窗 + 标签式输入)
Future<void> _editAlternateTitles() async {
final result = await showDialog<List<String>>(
final result = await appDialog<List<String>>(
context: context,
builder: (ctx) => AlternateTitlesDialog(initial: _alternateTitles),
);
@@ -807,7 +808,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
/// 编辑观看次数
Future<void> _editWatchCount() async {
final controller = TextEditingController(text: _watchCount > 0 ? '$_watchCount' : '');
final result = await showDialog<String>(
final result = await appDialog<String>(
context: context,
builder: (ctx) => AlertDialog(
title: const Text('观看次数'),
@@ -1118,7 +1119,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
/// 显示封面选择选项
void _showCoverOptions() {
final colors = Theme.of(context).colorScheme;
showModalBottomSheet(
appModalBottomSheet(
context: context,
backgroundColor: colors.surface,
shape: const RoundedRectangleBorder(
@@ -1292,7 +1293,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
Future<void> _pickCoverFromUrl() async {
final urlController = TextEditingController();
final confirmed = await showDialog<bool>(
final confirmed = await appDialog<bool>(
context: context,
builder: (ctx) {
final colors = Theme.of(ctx).colorScheme;
@@ -1400,7 +1401,7 @@ class _MovieFormPageState extends State<MovieFormPage> {
Future<bool> _confirmLeave() async {
if (!_hasContent()) return true;
final colors = Theme.of(context).colorScheme;
final result = await showDialog<bool>(
final result = await appDialog<bool>(
context: context,
builder: (ctx) => AlertDialog(
backgroundColor: colors.surface,