From b61c4353cebd311d6d781be3f9e762aa1c86227e Mon Sep 17 00:00:00 2001 From: Ellet <73608287+freshtechtips@users.noreply.github.com> Date: Thu, 9 Nov 2023 20:38:40 +0300 Subject: [PATCH] Update the example + Few more changes --- example/lib/pages/home_page.dart | 8 ++++++++ .../models/config/toolbar/base_configurations.dart | 2 +- lib/src/models/config/toolbar/configurations.dart | 6 +++--- lib/src/widgets/toolbar/buttons/custom_button.dart | 1 - lib/src/widgets/toolbar/toolbar.dart | 5 ++++- test/bug_fix_test.dart | 12 ++++-------- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/example/lib/pages/home_page.dart b/example/lib/pages/home_page.dart index a1c71d06..015be85b 100644 --- a/example/lib/pages/home_page.dart +++ b/example/lib/pages/home_page.dart @@ -457,9 +457,15 @@ class _HomePageState extends State { } QuillToolbar get quillToolbar { + final customButtons = [ + const QuillToolbarCustomButtonOptions( + icon: Icon(Icons.add), + ), + ]; if (kIsWeb) { return QuillToolbar( configurations: QuillToolbarConfigurations( + customButtons: customButtons, embedButtons: FlutterQuillEmbeds.toolbarButtons( imageButtonOptions: QuillToolbarImageButtonOptions( imageButtonConfigurations: QuillToolbarImageConfigurations( @@ -482,6 +488,7 @@ class _HomePageState extends State { if (isDesktop()) { return QuillToolbar( configurations: QuillToolbarConfigurations( + customButtons: customButtons, embedButtons: FlutterQuillEmbeds.toolbarButtons( imageButtonOptions: QuillToolbarImageButtonOptions( imageButtonConfigurations: QuillToolbarImageConfigurations( @@ -502,6 +509,7 @@ class _HomePageState extends State { } return QuillToolbar( configurations: QuillToolbarConfigurations( + customButtons: customButtons, embedButtons: FlutterQuillEmbeds.toolbarButtons( videoButtonOptions: QuillToolbarVideoButtonOptions( videoConfigurations: QuillToolbarVideoConfigurations( diff --git a/lib/src/models/config/toolbar/base_configurations.dart b/lib/src/models/config/toolbar/base_configurations.dart index 0cb576b0..1c4d1ff3 100644 --- a/lib/src/models/config/toolbar/base_configurations.dart +++ b/lib/src/models/config/toolbar/base_configurations.dart @@ -40,7 +40,7 @@ class QuillBaseToolbarConfigurations extends Equatable { final Color? color; /// List of custom buttons - final List customButtons; + final List customButtons; /// The color to use when painting the toolbar section divider. /// diff --git a/lib/src/models/config/toolbar/configurations.dart b/lib/src/models/config/toolbar/configurations.dart index c0fea446..c609cd80 100644 --- a/lib/src/models/config/toolbar/configurations.dart +++ b/lib/src/models/config/toolbar/configurations.dart @@ -2,9 +2,8 @@ import 'package:equatable/equatable.dart'; import 'package:flutter/foundation.dart' show immutable; import 'package:flutter/widgets.dart' show Axis, Color, Decoration, Widget, WrapAlignment, WrapCrossAlignment; -import '../../../widgets/embeds.dart'; -import '../../../widgets/toolbar/buttons/custom_button.dart'; +import '../../../widgets/embeds.dart'; import '../../structs/link_dialog_action.dart'; import '../../themes/quill_dialog_theme.dart'; import '../../themes/quill_icon_theme.dart'; @@ -27,6 +26,7 @@ export './../../../widgets/toolbar/buttons/search/search_dialog.dart'; export './buttons/base.dart'; export './buttons/clear_format.dart'; export './buttons/color.dart'; +export './buttons/custom_button.dart'; export './buttons/font_family.dart'; export './buttons/font_size.dart'; export './buttons/history.dart'; @@ -212,7 +212,7 @@ class QuillToolbarConfigurations extends Equatable { final bool showSearchButton; final bool showSubscript; final bool showSuperscript; - final List customButtons; + final List customButtons; /// The decoration to use for the toolbar. final Decoration? decoration; diff --git a/lib/src/widgets/toolbar/buttons/custom_button.dart b/lib/src/widgets/toolbar/buttons/custom_button.dart index c3e81077..0d736a10 100644 --- a/lib/src/widgets/toolbar/buttons/custom_button.dart +++ b/lib/src/widgets/toolbar/buttons/custom_button.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; -import '../../../models/config/toolbar/buttons/custom_button.dart'; import '../../../models/themes/quill_icon_theme.dart'; import '../../../utils/extensions/build_context.dart'; import '../../controller.dart'; diff --git a/lib/src/widgets/toolbar/toolbar.dart b/lib/src/widgets/toolbar/toolbar.dart index ccd4b044..1361e550 100644 --- a/lib/src/widgets/toolbar/toolbar.dart +++ b/lib/src/widgets/toolbar/toolbar.dart @@ -411,7 +411,10 @@ class QuillToolbar extends StatelessWidget { space: configurations.sectionDividerSpace, ), for (final customButton in configurations.customButtons) - customButton, + QuillToolbarCustomButton( + options: customButton, + controller: customButton.controller ?? globalController, + ), // if (customButton.child != null) ...[ // InkWell( // onTap: customButton.onTap, diff --git a/test/bug_fix_test.dart b/test/bug_fix_test.dart index abbe8669..81849459 100644 --- a/test/bug_fix_test.dart +++ b/test/bug_fix_test.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import 'package:flutter_quill/flutter_quill.dart'; -import 'package:flutter_quill/src/models/config/toolbar/buttons/custom_button.dart'; import 'package:flutter_quill_test/flutter_quill_test.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -21,16 +20,13 @@ void main() { configurations: QuillConfigurations( controller: controller, ), - child: QuillToolbar( + child: const QuillToolbar( configurations: QuillToolbarConfigurations( showRedo: false, customButtons: [ - QuillToolbarCustomButton( - options: const QuillToolbarCustomButtonOptions( - tooltip: tooltip, - ), - controller: controller, - ), + QuillToolbarCustomButtonOptions( + tooltip: tooltip, + ) ], ), ),