From 73a95c64bee6219c1da6390c991cd5743d7d828f Mon Sep 17 00:00:00 2001 From: bambinoua <130981115+MacDeveloper1@users.noreply.github.com> Date: Thu, 20 Apr 2023 11:45:03 +0200 Subject: [PATCH] Implement `ApplyLinkAction` for `Ctrl+K` --- lib/src/widgets/raw_editor.dart | 17 +++++++++++++---- lib/src/widgets/toolbar.dart | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/src/widgets/raw_editor.dart b/lib/src/widgets/raw_editor.dart index 70006329..4fe15b20 100644 --- a/lib/src/widgets/raw_editor.dart +++ b/lib/src/widgets/raw_editor.dart @@ -42,7 +42,7 @@ import 'raw_editor/raw_editor_state_text_input_client_mixin.dart'; import 'text_block.dart'; import 'text_line.dart'; import 'text_selection.dart'; -import 'toolbar/link_style_button.dart'; +import 'toolbar/link_style_button2.dart'; import 'toolbar/search_dialog.dart'; class RawEditor extends StatefulWidget { @@ -2574,13 +2574,22 @@ class ApplyLinkAction extends Action { final RawEditorState state; @override - Object? invoke(ApplyLinkIntent intent) { - showDialog( + Object? invoke(ApplyLinkIntent intent) async { + final initialTextLink = QuillTextLink.prepare(state.controller); + + final textLink = await showDialog( context: state.context, builder: (context) { - return const LinkStyleDialog(); + return LinkStyleDialog( + text: initialTextLink.text, + link: initialTextLink.link, + ); }, ); + + if (textLink != null) { + textLink.submit(state.controller); + } return null; } } diff --git a/lib/src/widgets/toolbar.dart b/lib/src/widgets/toolbar.dart index d5a5c93a..f28eaee9 100644 --- a/lib/src/widgets/toolbar.dart +++ b/lib/src/widgets/toolbar.dart @@ -29,6 +29,7 @@ export 'toolbar/color_button.dart'; export 'toolbar/history_button.dart'; export 'toolbar/indent_button.dart'; export 'toolbar/link_style_button.dart'; +export 'toolbar/link_style_button2.dart'; export 'toolbar/quill_font_family_button.dart'; export 'toolbar/quill_font_size_button.dart'; export 'toolbar/quill_icon_button.dart';