#566 multiline text field when renaming single item

This commit is contained in:
Thibault Deckers 2023-03-26 00:29:35 +01:00
parent 2e0b15787f
commit 89deed98cd

View file

@ -42,22 +42,31 @@ class _RenameEntryDialogState extends State<RenameEntryDialog> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isRtl = context.isRtl;
final extensionSuffixText = '${Unicode.FSI}${entry.extension}${Unicode.PDI}';
return AvesDialog( return AvesDialog(
content: TextField( content: Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: TextField(
controller: _nameController, controller: _nameController,
decoration: InputDecoration( decoration: InputDecoration(
labelText: context.l10n.renameEntryDialogLabel, 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, autofocus: true,
maxLines: null,
onChanged: (_) => _validate(), onChanged: (_) => _validate(),
onSubmitted: (_) => _submit(context), 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: [ actions: [
const CancelButton(), const CancelButton(),
ValueListenableBuilder<bool>( ValueListenableBuilder<bool>(
@ -78,7 +87,7 @@ class _RenameEntryDialogState extends State<RenameEntryDialog> {
return pContext.join(entry.directory!, '$name${entry.extension}'); return pContext.join(entry.directory!, '$name${entry.extension}');
} }
String get newName => _nameController.text.trimLeft(); String get newName => _nameController.text.trimLeft().replaceAll('\n', '');
Future<void> _validate() async { Future<void> _validate() async {
final _newName = newName; final _newName = newName;