From 616fae851b9c8cc6574190f0e84ab6a85dd5aa79 Mon Sep 17 00:00:00 2001 From: Jonathan Salmon Date: Wed, 31 Aug 2022 23:50:19 +0100 Subject: [PATCH] Moved all embed code to seperate folder --- lib/flutter_quill.dart | 3 +- .../embeds/default_embed_builder.dart | 42 +++++++++++++------ .../toolbar/camera_button.dart | 6 ++- .../toolbar/formula_button.dart | 5 ++- .../toolbar/image_button.dart | 6 ++- .../toolbar/image_video_utils.dart | 4 +- .../toolbar/video_button.dart | 6 ++- .../embeds => embeds/widgets}/image.dart | 2 +- .../widgets}/image_resizer.dart | 0 .../embeds => embeds/widgets}/video_app.dart | 0 .../widgets}/youtube_video_app.dart | 2 +- lib/src/widgets/editor.dart | 2 +- lib/src/widgets/raw_editor.dart | 2 +- lib/src/widgets/toolbar.dart | 21 ++-------- 14 files changed, 56 insertions(+), 45 deletions(-) rename lib/src/{widgets => }/embeds/default_embed_builder.dart (89%) rename lib/src/{widgets => embeds}/toolbar/camera_button.dart (96%) rename lib/src/{widgets => embeds}/toolbar/formula_button.dart (93%) rename lib/src/{widgets => embeds}/toolbar/image_button.dart (94%) rename lib/src/{widgets => embeds}/toolbar/image_video_utils.dart (98%) rename lib/src/{widgets => embeds}/toolbar/video_button.dart (94%) rename lib/src/{widgets/embeds => embeds/widgets}/image.dart (99%) rename lib/src/{widgets/embeds => embeds/widgets}/image_resizer.dart (100%) rename lib/src/{widgets/embeds => embeds/widgets}/video_app.dart (100%) rename lib/src/{widgets/embeds => embeds/widgets}/youtube_video_app.dart (97%) diff --git a/lib/flutter_quill.dart b/lib/flutter_quill.dart index f69945d7..cad8fcbe 100644 --- a/lib/flutter_quill.dart +++ b/lib/flutter_quill.dart @@ -1,5 +1,7 @@ library flutter_quill; +export 'src/embeds/default_embed_builder.dart'; +export 'src/embeds/widgets/image.dart'; export 'src/models/documents/attribute.dart'; export 'src/models/documents/document.dart'; export 'src/models/documents/nodes/embeddable.dart'; @@ -14,7 +16,6 @@ export 'src/utils/embeds.dart'; export 'src/widgets/controller.dart'; export 'src/widgets/default_styles.dart'; export 'src/widgets/editor.dart'; -export 'src/widgets/embeds/image.dart'; export 'src/widgets/link.dart' show LinkActionPickerDelegate, LinkMenuAction; export 'src/widgets/style_widgets/style_widgets.dart'; export 'src/widgets/toolbar.dart'; diff --git a/lib/src/widgets/embeds/default_embed_builder.dart b/lib/src/embeds/default_embed_builder.dart similarity index 89% rename from lib/src/widgets/embeds/default_embed_builder.dart rename to lib/src/embeds/default_embed_builder.dart index bc3b9a81..404d2217 100644 --- a/lib/src/widgets/embeds/default_embed_builder.dart +++ b/lib/src/embeds/default_embed_builder.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -6,18 +8,34 @@ import 'package:gallery_saver/gallery_saver.dart'; import 'package:math_keyboard/math_keyboard.dart'; import 'package:tuple/tuple.dart'; -import '../../models/documents/attribute.dart'; -import '../../models/documents/nodes/embeddable.dart'; -import '../../models/documents/nodes/leaf.dart' as leaf; -import '../../translations/toolbar.i18n.dart'; -import '../../utils/embeds.dart'; -import '../../utils/platform.dart'; -import '../../utils/string.dart'; -import '../controller.dart'; -import 'image.dart'; -import 'image_resizer.dart'; -import 'video_app.dart'; -import 'youtube_video_app.dart'; +import '../models/documents/attribute.dart'; +import '../models/documents/nodes/embeddable.dart'; +import '../models/documents/nodes/leaf.dart' as leaf; +import '../translations/toolbar.i18n.dart'; +import '../utils/embeds.dart'; +import '../utils/platform.dart'; +import '../utils/string.dart'; +import '../widgets/controller.dart'; +import 'toolbar/image_video_utils.dart'; +import 'widgets/image.dart'; +import 'widgets/image_resizer.dart'; +import 'widgets/video_app.dart'; +import 'widgets/youtube_video_app.dart'; + +export 'toolbar/image_button.dart'; +export 'toolbar/image_video_utils.dart'; +export 'toolbar/video_button.dart'; + +typedef OnImagePickCallback = Future Function(File file); +typedef OnVideoPickCallback = Future Function(File file); +typedef FilePickImpl = Future Function(BuildContext context); +typedef WebImagePickImpl = Future Function( + OnImagePickCallback onImagePickCallback); +typedef WebVideoPickImpl = Future Function( + OnVideoPickCallback onImagePickCallback); +typedef MediaPickSettingSelector = Future Function( + BuildContext context); + Widget defaultEmbedBuilder( BuildContext context, diff --git a/lib/src/widgets/toolbar/camera_button.dart b/lib/src/embeds/toolbar/camera_button.dart similarity index 96% rename from lib/src/widgets/toolbar/camera_button.dart rename to lib/src/embeds/toolbar/camera_button.dart index d367ae6c..6bd841d7 100644 --- a/lib/src/widgets/toolbar/camera_button.dart +++ b/lib/src/embeds/toolbar/camera_button.dart @@ -3,8 +3,10 @@ import 'package:image_picker/image_picker.dart'; import '../../models/themes/quill_icon_theme.dart'; import '../../translations/toolbar.i18n.dart'; -import '../controller.dart'; -import '../toolbar.dart'; +import '../../widgets/controller.dart'; +import '../../widgets/toolbar.dart'; +import '../default_embed_builder.dart'; +import 'image_video_utils.dart'; class CameraButton extends StatelessWidget { const CameraButton({ diff --git a/lib/src/widgets/toolbar/formula_button.dart b/lib/src/embeds/toolbar/formula_button.dart similarity index 93% rename from lib/src/widgets/toolbar/formula_button.dart rename to lib/src/embeds/toolbar/formula_button.dart index 13cc036b..51d1d4f7 100644 --- a/lib/src/widgets/toolbar/formula_button.dart +++ b/lib/src/embeds/toolbar/formula_button.dart @@ -3,8 +3,9 @@ import 'package:flutter/material.dart'; import '../../models/documents/nodes/embeddable.dart'; import '../../models/themes/quill_dialog_theme.dart'; import '../../models/themes/quill_icon_theme.dart'; -import '../controller.dart'; -import '../toolbar.dart'; +import '../../widgets/controller.dart'; +import '../../widgets/toolbar.dart'; +import '../default_embed_builder.dart'; class FormulaButton extends StatelessWidget { const FormulaButton({ diff --git a/lib/src/widgets/toolbar/image_button.dart b/lib/src/embeds/toolbar/image_button.dart similarity index 94% rename from lib/src/widgets/toolbar/image_button.dart rename to lib/src/embeds/toolbar/image_button.dart index 2a2fb827..5b73aa13 100644 --- a/lib/src/widgets/toolbar/image_button.dart +++ b/lib/src/embeds/toolbar/image_button.dart @@ -4,8 +4,10 @@ import 'package:image_picker/image_picker.dart'; import '../../models/documents/nodes/embeddable.dart'; import '../../models/themes/quill_dialog_theme.dart'; import '../../models/themes/quill_icon_theme.dart'; -import '../controller.dart'; -import '../toolbar.dart'; +import '../../widgets/controller.dart'; +import '../../widgets/toolbar.dart'; +import '../default_embed_builder.dart'; +import 'image_video_utils.dart'; class ImageButton extends StatelessWidget { const ImageButton({ diff --git a/lib/src/widgets/toolbar/image_video_utils.dart b/lib/src/embeds/toolbar/image_video_utils.dart similarity index 98% rename from lib/src/widgets/toolbar/image_video_utils.dart rename to lib/src/embeds/toolbar/image_video_utils.dart index eca9dc9c..7a6a6ba5 100644 --- a/lib/src/widgets/toolbar/image_video_utils.dart +++ b/lib/src/embeds/toolbar/image_video_utils.dart @@ -9,8 +9,8 @@ import '../../models/rules/insert.dart'; import '../../models/themes/quill_dialog_theme.dart'; import '../../translations/toolbar.i18n.dart'; import '../../utils/platform.dart'; -import '../controller.dart'; -import '../toolbar.dart'; +import '../../widgets/controller.dart'; +import '../default_embed_builder.dart'; class LinkDialog extends StatefulWidget { const LinkDialog({this.dialogTheme, this.link, Key? key}) : super(key: key); diff --git a/lib/src/widgets/toolbar/video_button.dart b/lib/src/embeds/toolbar/video_button.dart similarity index 94% rename from lib/src/widgets/toolbar/video_button.dart rename to lib/src/embeds/toolbar/video_button.dart index 17e7f1a6..aed4e9fd 100644 --- a/lib/src/widgets/toolbar/video_button.dart +++ b/lib/src/embeds/toolbar/video_button.dart @@ -4,8 +4,10 @@ import 'package:image_picker/image_picker.dart'; import '../../models/documents/nodes/embeddable.dart'; import '../../models/themes/quill_dialog_theme.dart'; import '../../models/themes/quill_icon_theme.dart'; -import '../controller.dart'; -import '../toolbar.dart'; +import '../../widgets/controller.dart'; +import '../../widgets/toolbar.dart'; +import '../default_embed_builder.dart'; +import 'image_video_utils.dart'; class VideoButton extends StatelessWidget { const VideoButton({ diff --git a/lib/src/widgets/embeds/image.dart b/lib/src/embeds/widgets/image.dart similarity index 99% rename from lib/src/widgets/embeds/image.dart rename to lib/src/embeds/widgets/image.dart index 8f2d70af..9ed183ad 100644 --- a/lib/src/widgets/embeds/image.dart +++ b/lib/src/embeds/widgets/image.dart @@ -7,7 +7,7 @@ import 'package:string_validator/string_validator.dart'; import '../../models/documents/attribute.dart'; import '../../models/documents/style.dart'; -import '../controller.dart'; +import '../../widgets/controller.dart'; const List imageFileExtensions = [ '.jpeg', diff --git a/lib/src/widgets/embeds/image_resizer.dart b/lib/src/embeds/widgets/image_resizer.dart similarity index 100% rename from lib/src/widgets/embeds/image_resizer.dart rename to lib/src/embeds/widgets/image_resizer.dart diff --git a/lib/src/widgets/embeds/video_app.dart b/lib/src/embeds/widgets/video_app.dart similarity index 100% rename from lib/src/widgets/embeds/video_app.dart rename to lib/src/embeds/widgets/video_app.dart diff --git a/lib/src/widgets/embeds/youtube_video_app.dart b/lib/src/embeds/widgets/youtube_video_app.dart similarity index 97% rename from lib/src/widgets/embeds/youtube_video_app.dart rename to lib/src/embeds/widgets/youtube_video_app.dart index 79b64b97..7b0a6fcb 100644 --- a/lib/src/widgets/embeds/youtube_video_app.dart +++ b/lib/src/embeds/widgets/youtube_video_app.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; import 'package:youtube_player_flutter_quill/youtube_player_flutter_quill.dart'; -import '../default_styles.dart'; +import '../../widgets/default_styles.dart'; class YoutubeVideoApp extends StatefulWidget { const YoutubeVideoApp( diff --git a/lib/src/widgets/editor.dart b/lib/src/widgets/editor.dart index 09d04794..4d784fbd 100644 --- a/lib/src/widgets/editor.dart +++ b/lib/src/widgets/editor.dart @@ -19,7 +19,7 @@ import 'controller.dart'; import 'cursor.dart'; import 'default_styles.dart'; import 'delegate.dart'; -import 'embeds/default_embed_builder.dart'; +import '../embeds/default_embed_builder.dart'; import 'float_cursor.dart'; import 'link.dart'; import 'raw_editor.dart'; diff --git a/lib/src/widgets/raw_editor.dart b/lib/src/widgets/raw_editor.dart index b661e512..d4c3a913 100644 --- a/lib/src/widgets/raw_editor.dart +++ b/lib/src/widgets/raw_editor.dart @@ -26,7 +26,7 @@ import 'cursor.dart'; import 'default_styles.dart'; import 'delegate.dart'; import 'editor.dart'; -import 'embeds/default_embed_builder.dart'; +import '../embeds/default_embed_builder.dart'; import 'keyboard_listener.dart'; import 'link.dart'; import 'proxy.dart'; diff --git a/lib/src/widgets/toolbar.dart b/lib/src/widgets/toolbar.dart index 1819e9d9..820dd3de 100644 --- a/lib/src/widgets/toolbar.dart +++ b/lib/src/widgets/toolbar.dart @@ -3,6 +3,9 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:i18n_extension/i18n_widget.dart'; +import '../embeds/default_embed_builder.dart'; +import '../embeds/toolbar/camera_button.dart'; +import '../embeds/toolbar/formula_button.dart'; import '../models/documents/attribute.dart'; import '../models/themes/quill_custom_button.dart'; import '../models/themes/quill_dialog_theme.dart'; @@ -11,13 +14,9 @@ import '../translations/toolbar.i18n.dart'; import '../utils/font.dart'; import 'controller.dart'; import 'toolbar/arrow_indicated_button_list.dart'; -import 'toolbar/camera_button.dart'; import 'toolbar/clear_format_button.dart'; import 'toolbar/color_button.dart'; -import 'toolbar/formula_button.dart'; import 'toolbar/history_button.dart'; -import 'toolbar/image_button.dart'; -import 'toolbar/image_video_utils.dart'; import 'toolbar/indent_button.dart'; import 'toolbar/link_style_button.dart'; import 'toolbar/quill_font_family_button.dart'; @@ -28,13 +27,10 @@ import 'toolbar/select_alignment_button.dart'; import 'toolbar/select_header_style_button.dart'; import 'toolbar/toggle_check_list_button.dart'; import 'toolbar/toggle_style_button.dart'; -import 'toolbar/video_button.dart'; export 'toolbar/clear_format_button.dart'; export 'toolbar/color_button.dart'; export 'toolbar/history_button.dart'; -export 'toolbar/image_button.dart'; -export 'toolbar/image_video_utils.dart'; export 'toolbar/indent_button.dart'; export 'toolbar/link_style_button.dart'; export 'toolbar/quill_font_size_button.dart'; @@ -43,17 +39,6 @@ export 'toolbar/select_alignment_button.dart'; export 'toolbar/select_header_style_button.dart'; export 'toolbar/toggle_check_list_button.dart'; export 'toolbar/toggle_style_button.dart'; -export 'toolbar/video_button.dart'; - -typedef OnImagePickCallback = Future Function(File file); -typedef OnVideoPickCallback = Future Function(File file); -typedef FilePickImpl = Future Function(BuildContext context); -typedef WebImagePickImpl = Future Function( - OnImagePickCallback onImagePickCallback); -typedef WebVideoPickImpl = Future Function( - OnVideoPickCallback onImagePickCallback); -typedef MediaPickSettingSelector = Future Function( - BuildContext context); // The default size of the icon of a button. const double kDefaultIconSize = 18;