From 540d421d3bb6f449d6f52bd4817e24255f892941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=A8=87?= Date: Mon, 26 Feb 2024 23:58:44 +0800 Subject: [PATCH] use `CustomDialog` to add `constraints` --- lib/dialogs/increment_dialog.dart | 3 ++- lib/dialogs/insert_dialog.dart | 3 ++- lib/dialogs/metadata_dialog.dart | 4 +++- lib/dialogs/rearrange_dialog.dart | 3 ++- lib/dialogs/replace_dialog.dart | 3 ++- lib/dialogs/transliterate_dialog.dart | 3 ++- lib/dialogs/truncate_dialog.dart | 3 ++- lib/main.dart | 5 +++-- lib/pages/home_page.dart | 3 ++- lib/tools/rename.dart | 3 ++- lib/widget/custom_dialog.dart | 20 ++++++++++++++++++++ 11 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 lib/widget/custom_dialog.dart diff --git a/lib/dialogs/increment_dialog.dart b/lib/dialogs/increment_dialog.dart index 6735b17..130834c 100644 --- a/lib/dialogs/increment_dialog.dart +++ b/lib/dialogs/increment_dialog.dart @@ -5,6 +5,7 @@ import '../entity/constants.dart'; import '../l10n/l10n.dart'; import '../rules/rule.dart'; import '../widget/checkbox_tile.dart'; +import '../widget/custom_dialog.dart'; void showIncrementDialog(BuildContext context, Function(Rule) onSave) => showDialog( context: context, @@ -35,7 +36,7 @@ class _IncrementDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: ${L10n.current.increment}'), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/insert_dialog.dart b/lib/dialogs/insert_dialog.dart index d55eb70..73f23ef 100644 --- a/lib/dialogs/insert_dialog.dart +++ b/lib/dialogs/insert_dialog.dart @@ -7,6 +7,7 @@ import '../l10n/l10n.dart'; import '../tools/ex_text_editing_controller.dart'; import '../rules/rule.dart'; import '../widget/checkbox_tile.dart'; +import '../widget/custom_dialog.dart'; void showInsertDialog(BuildContext context, Function(Rule) onSave) => showDialog( context: context, @@ -36,7 +37,7 @@ class _InsertDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: ${L10n.current.insert}'), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/metadata_dialog.dart b/lib/dialogs/metadata_dialog.dart index 02b2a9c..b6a67cd 100644 --- a/lib/dialogs/metadata_dialog.dart +++ b/lib/dialogs/metadata_dialog.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import 'package:renamer/l10n/l10n.dart'; +import '../widget/custom_dialog.dart'; + void showMetadataDialog(BuildContext context, Function(String tag) onInsert) => showDialog( context: context, builder: (context) => MetadataDialog( @@ -38,7 +40,7 @@ class MetadataDialog extends StatelessWidget { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text(L10n.current.metadataTags), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/rearrange_dialog.dart b/lib/dialogs/rearrange_dialog.dart index 8e9fcf0..677720d 100644 --- a/lib/dialogs/rearrange_dialog.dart +++ b/lib/dialogs/rearrange_dialog.dart @@ -5,6 +5,7 @@ import '../entity/constants.dart'; import '../l10n/l10n.dart'; import '../rules/rule.dart'; import '../widget/checkbox_tile.dart'; +import '../widget/custom_dialog.dart'; void showRearrangeDialog(BuildContext context, Function(Rule) onSave) => showDialog( context: context, @@ -29,7 +30,7 @@ class _RearrangeDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: ${L10n.current.rearrange}'), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/replace_dialog.dart b/lib/dialogs/replace_dialog.dart index 76e1570..c40d766 100644 --- a/lib/dialogs/replace_dialog.dart +++ b/lib/dialogs/replace_dialog.dart @@ -6,6 +6,7 @@ import '../l10n/l10n.dart'; import '../tools/ex_text_editing_controller.dart'; import '../rules/rule.dart'; import '../widget/checkbox_tile.dart'; +import '../widget/custom_dialog.dart'; import 'metadata_dialog.dart'; void showReplaceDialog(BuildContext context, Function(Rule) onSave) => showDialog( @@ -49,7 +50,7 @@ class _ReplaceDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: $ruleName'), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/transliterate_dialog.dart b/lib/dialogs/transliterate_dialog.dart index abfb377..cc16fc8 100644 --- a/lib/dialogs/transliterate_dialog.dart +++ b/lib/dialogs/transliterate_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import '../entity/transliterate.dart'; import '../l10n/l10n.dart'; +import '../widget/custom_dialog.dart'; import '../widget/custom_drop.dart'; import 'package:cyrtranslit/cyrtranslit.dart' as cyrtranslit; @@ -28,7 +29,7 @@ class _TransliterateDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: ${L10n.current.transliterate}'), content: SingleChildScrollView( child: Column( diff --git a/lib/dialogs/truncate_dialog.dart b/lib/dialogs/truncate_dialog.dart index b0e8f21..c885f76 100644 --- a/lib/dialogs/truncate_dialog.dart +++ b/lib/dialogs/truncate_dialog.dart @@ -5,6 +5,7 @@ import '../entity/constants.dart'; import '../l10n/l10n.dart'; import '../rules/rule.dart'; import '../widget/checkbox_tile.dart'; +import '../widget/custom_dialog.dart'; void showTruncateDialog(BuildContext context, Function(Rule) onSave) => showDialog( context: context, @@ -55,7 +56,7 @@ class _TruncateDialogState extends State { @override Widget build(BuildContext context) { - return AlertDialog( + return CustomDialog( title: Text('${L10n.current.addRule}: ${L10n.current.truncate}'), content: SingleChildScrollView( child: Column( diff --git a/lib/main.dart b/lib/main.dart index 174d28b..19ba73c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -8,6 +8,7 @@ import 'entity/sharedpref.dart'; import 'entity/theme_extension.dart'; import 'l10n/l10n.dart'; import 'pages/home_page.dart'; +import 'widget/custom_dialog.dart'; late Locale _appLocale; @@ -106,7 +107,7 @@ class AppPage extends StatelessWidget { void _permissionRequest(BuildContext context) => showDialog( context: context, - builder: (contextD) => AlertDialog( + builder: (contextD) => CustomDialog( title: Text(L10n.current.permissionTitle), content: Text(L10n.current.permissionContent), actions: [ @@ -129,7 +130,7 @@ class AppPage extends StatelessWidget { void _cannotRun(BuildContext context) { showDialog( context: context, - builder: (context) => AlertDialog( + builder: (context) => CustomDialog( title: Text(L10n.current.exitTitle), content: Text(L10n.current.exitContent), actions: [ diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index d3283bc..c35b2e6 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -10,6 +10,7 @@ import '../l10n/l10n.dart'; import '../rules/rule.dart'; import '../tools/file_metadata.dart'; import '../tools/responsive.dart'; +import '../widget/custom_dialog.dart'; import 'rules_page.dart'; import 'files_page.dart'; @@ -228,7 +229,7 @@ class _HomeToolBarState extends State { void ratingMyApp() => showDialog( context: context, - builder: (context) => AlertDialog( + builder: (context) => CustomDialog( title: Text(L10n.current.ratingTitle), content: Text(L10n.current.ratingContent), actions: [ diff --git a/lib/tools/rename.dart b/lib/tools/rename.dart index 79d03da..ce3db33 100644 --- a/lib/tools/rename.dart +++ b/lib/tools/rename.dart @@ -6,6 +6,7 @@ import 'package:flutter/services.dart'; import '../l10n/l10n.dart'; import '../tools/ex_file.dart'; +import '../widget/custom_dialog.dart'; Future rename( FileSystemEntity file, { @@ -28,7 +29,7 @@ Future rename( if (context != null && context.mounted) { showDialog( context: context, - builder: (dContext) => AlertDialog( + builder: (dContext) => CustomDialog( title: Text(L10n.current.appError), content: Column( mainAxisSize: MainAxisSize.min, diff --git a/lib/widget/custom_dialog.dart b/lib/widget/custom_dialog.dart new file mode 100644 index 0000000..41fab00 --- /dev/null +++ b/lib/widget/custom_dialog.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; + +class CustomDialog extends StatelessWidget { + const CustomDialog({super.key, this.title, this.content, this.actions}); + final Widget? title; + final Widget? content; + final List? actions; + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: title, + actions: actions, + content: Container( + constraints: const BoxConstraints(minWidth: 200, maxWidth: 400), + child: content, + ), + ); + } +}