From 89deed98cdbf5aa26d6df40faaa63b94d8394ca4 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 26 Mar 2023 00:29:35 +0100 Subject: [PATCH] #566 multiline text field when renaming single item --- .../entry_editors/rename_entry_dialog.dart | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/lib/widgets/dialogs/entry_editors/rename_entry_dialog.dart b/lib/widgets/dialogs/entry_editors/rename_entry_dialog.dart index e5b002de4..c524323bb 100644 --- a/lib/widgets/dialogs/entry_editors/rename_entry_dialog.dart +++ b/lib/widgets/dialogs/entry_editors/rename_entry_dialog.dart @@ -42,21 +42,30 @@ class _RenameEntryDialogState extends State { @override Widget build(BuildContext context) { - final isRtl = context.isRtl; - final extensionSuffixText = '${Unicode.FSI}${entry.extension}${Unicode.PDI}'; return AvesDialog( - content: TextField( - controller: _nameController, - decoration: InputDecoration( - labelText: context.l10n.renameEntryDialogLabel, - // decoration prefix and suffix follow directionality - // but the file extension should always be on the right - prefixText: isRtl ? extensionSuffixText : null, - suffixText: isRtl ? null : extensionSuffixText, - ), - autofocus: true, - onChanged: (_) => _validate(), - onSubmitted: (_) => _submit(context), + content: Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Expanded( + child: TextField( + controller: _nameController, + decoration: InputDecoration( + labelText: context.l10n.renameEntryDialogLabel, + ), + autofocus: true, + maxLines: null, + onChanged: (_) => _validate(), + onSubmitted: (_) => _submit(context), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.only(start: 4, bottom: 12), + child: Text( + '${Unicode.FSI}${entry.extension}${Unicode.PDI}', + style: TextStyle(color: Theme.of(context).hintColor), + ), + ), + ], ), actions: [ const CancelButton(), @@ -78,7 +87,7 @@ class _RenameEntryDialogState extends State { return pContext.join(entry.directory!, '$name${entry.extension}'); } - String get newName => _nameController.text.trimLeft(); + String get newName => _nameController.text.trimLeft().replaceAll('\n', ''); Future _validate() async { final _newName = newName;