Merge branch 'master' into header_buttons

pull/1657/head
Mike Allen 1 year ago
commit 1ce9fb461e
  1. 6
      CHANGELOG.md
  2. 14
      doc/translation.md
  3. 24
      example/lib/screens/quill/my_quill_toolbar.dart
  4. 2
      example/macos/Flutter/GeneratedPluginRegistrant.swift
  5. 10
      example/macos/Podfile.lock
  6. 1
      example/pubspec.yaml
  7. 6
      flutter_quill_extensions/CHANGELOG.md
  8. 2
      flutter_quill_extensions/pubspec.yaml
  9. 6
      flutter_quill_test/CHANGELOG.md
  10. 2
      flutter_quill_test/pubspec.yaml
  11. 2
      l10n.yaml
  12. 14
      lib/src/l10n/generated/quill_localizations.dart
  13. 545
      lib/src/l10n/generated/quill_localizations_ro.dart
  14. 129
      lib/src/l10n/generated/quill_localizations_zh.dart
  15. 2
      lib/src/l10n/quill_en.arb
  16. 90
      lib/src/l10n/quill_ro.arb
  17. 90
      lib/src/l10n/quill_ro_RO.arb
  18. 71
      lib/src/l10n/quill_zh.arb
  19. 34
      lib/src/l10n/quill_zh_CN.arb
  20. 32
      lib/src/l10n/untranslated.json
  21. 35
      lib/src/models/config/toolbar/buttons/select_alignment_configurations.dart
  22. 12
      lib/src/widgets/quill/quill_controller.dart
  23. 42
      lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart
  24. 34
      lib/src/widgets/toolbar/buttons/alignment/select_alignment_buttons.dart
  25. 16
      lib/src/widgets/toolbar/buttons/font_family_button.dart
  26. 4
      lib/src/widgets/toolbar/buttons/font_size_button.dart
  27. 12
      lib/src/widgets/toolbar/simple_toolbar.dart
  28. 32
      pubspec.yaml
  29. 6
      quill_html_converter/CHANGELOG.md
  30. 2
      quill_html_converter/pubspec.yaml
  31. 6
      quill_pdf_converter/CHANGELOG.md
  32. 2
      quill_pdf_converter/pubspec.yaml
  33. 2
      version.dart

@ -2,10 +2,16 @@
All notable changes to this project will be documented in this file.
## 9.2.1
* Fix [bug](https://github.com/singerdmx/flutter-quill/issues/1119#issuecomment-1872605246) with font size button
* Added ro RO translations
* 📖 Update zh, zh_CN translations
## 9.2.0
* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0
* Add on image clicked in `flutter_quill_extensions` callback
* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead
* Fix the `QuillToolbarSelectAlignmentButtons`
## 9.1.1
* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure

@ -23,13 +23,13 @@ Expanded(
)
```
Currently, translations are available for these 33 locales:
Currently, translations are available for these 34 locales:
* `Locale('en')`, `Locale('ar')`, `Locale('bn')`, `Locale('bs')`
* `Locale('cs')`, `Locale('de')`, `Locale('da')`, `Locale('fr')`
* `Locale('he')`, `Locale('zh', 'CN')`, `Locale('zh', 'HK')`
* `Locale('ko')`, `Locale('ku')`, `Locale('ku', 'CKB')`
* `Locale('ru')`, `Locale('es')`, `Locale('tk')`, `Locale('tr')`
* `Locale('ro', 'RO')`, `Locale('ru')`, `Locale('es')`, `Locale('tk')`, `Locale('tr')`
* `Locale('uk')`, `Locale('ur')`, `Locale('pt')`, `Locale('pl')`
* `Locale('vi')`, `Locale('id')`, `Locale('it')`, `Locale('ms')`
* `Locale('nl')`, `Locale('no')`, `Locale('fa')`, `Locale('hi')`
@ -49,16 +49,18 @@ Also, you can take a look at the [untranslated.json](../lib/src/l10n/untranslate
After you are done and want to test the changes, run the following in the root folder (preferred):
```
flutter gen-l10n
./scripts/regenerate_translations.sh
```
or:
or (if you can't run the script for some reasons):
```
./scripts/regenerate_translations.sh
flutter gen-l10n
dart fix --apply ./lib/src/l10n/generated
dart format ./lib/src/l10n/generated
```
This will generate the new dart files from the arb files in order to take effect, otherwise, you won't notice a difference
Then open a pull request so everyone can benefit from your translations!
Then open a pull request so everyone can benefit from your translations!

@ -5,6 +5,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_quill/extensions.dart' show isAndroid, isIOS, isWeb;
import 'package:flutter_quill/flutter_quill.dart';
import 'package:flutter_quill_extensions/flutter_quill_extensions.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:image_cropper/image_cropper.dart';
import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart'
@ -202,6 +203,25 @@ class MyQuillToolbar extends StatelessWidget {
controller: controller,
showAlignmentButtons: true,
multiRowsDisplay: true,
fontFamilyValues: {
'Amatic': GoogleFonts.amaticSc().fontFamily!,
'Annie': GoogleFonts.annieUseYourTelescope().fontFamily!,
'Formal': GoogleFonts.petitFormalScript().fontFamily!,
'Roboto': GoogleFonts.roboto().fontFamily!
},
fontSizesValues: const {
'14': '14.0',
'16': '16.0',
'18': '18.0',
'20': '20.0',
'22': '22.0',
'24': '24.0',
'26': '26.0',
'28': '28.0',
'30': '30.0',
'35': '35.0',
'40': '40.0'
},
buttonOptions: QuillSimpleToolbarButtonOptions(
base: QuillToolbarBaseButtonOptions(
afterButtonPressed: focusNode.requestFocus,
@ -209,12 +229,12 @@ class MyQuillToolbar extends StatelessWidget {
// iconTheme: QuillIconTheme(
// iconButtonSelectedData: IconButtonData(
// style: IconButton.styleFrom(
// foregroundColor: Colors.amberAccent,
// foregroundColor: Colors.blue,
// ),
// ),
// iconButtonUnselectedData: IconButtonData(
// style: IconButton.styleFrom(
// foregroundColor: Colors.amberAccent,
// foregroundColor: Colors.red,
// ),
// ),
// ),

@ -8,6 +8,7 @@ import Foundation
import desktop_drop
import device_info_plus
import file_selector_macos
import flutter_inappwebview_macos
import gal
import irondash_engine_context
import path_provider_foundation
@ -22,6 +23,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
GalPlugin.register(with: registry.registrar(forPlugin: "GalPlugin"))
IrondashEngineContextPlugin.register(with: registry.registrar(forPlugin: "IrondashEngineContextPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))

@ -5,6 +5,9 @@ PODS:
- FlutterMacOS
- file_selector_macos (0.0.1):
- FlutterMacOS
- flutter_inappwebview_macos (0.0.1):
- FlutterMacOS
- OrderedSet (~> 5.0)
- FlutterMacOS (1.0.0)
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
@ -14,6 +17,7 @@ PODS:
- FlutterMacOS
- irondash_engine_context (0.0.1):
- FlutterMacOS
- OrderedSet (5.0.0)
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
@ -36,6 +40,7 @@ DEPENDENCIES:
- desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`)
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
- file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`)
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- gal (from `Flutter/ephemeral/.symlinks/plugins/gal/darwin`)
- irondash_engine_context (from `Flutter/ephemeral/.symlinks/plugins/irondash_engine_context/macos`)
@ -50,6 +55,7 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- FMDB
- OrderedSet
EXTERNAL SOURCES:
desktop_drop:
@ -58,6 +64,8 @@ EXTERNAL SOURCES:
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
file_selector_macos:
:path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos
flutter_inappwebview_macos:
:path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos
FlutterMacOS:
:path: Flutter/ephemeral
gal:
@ -83,10 +91,12 @@ SPEC CHECKSUMS:
desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
file_selector_macos: 468fb6b81fac7c0e88d71317f3eec34c3b008ff9
flutter_inappwebview_macos: 9600c9df9fdb346aaa8933812009f8d94304203d
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
gal: 61e868295d28fe67ffa297fae6dacebf56fd53e1
irondash_engine_context: da62996ee25616d2f01bbeb85dc115d813359478
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
printing: 1dd6a1fce2209ec240698e2439a4adbb9b427637
share_plus: 76dd39142738f7a68dd57b05093b5e8193f220f7

@ -47,6 +47,7 @@ dependencies:
# For sharing text
share_plus: ^7.2.1
printing: ^5.11.1
google_fonts: ^6.1.0
dependency_overrides:
flutter_quill:

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## 9.2.0
* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0
* Add on image clicked in `flutter_quill_extensions` callback
* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead
* Fix the `QuillToolbarSelectAlignmentButtons`
## 9.1.1
* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure

@ -1,6 +1,6 @@
name: flutter_quill_extensions
description: Embed extensions for flutter_quill including image, video, formula and etc.
version: 9.1.1
version: 9.2.0
homepage: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_extensions/
repository: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_extensions/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## 9.2.0
* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0
* Add on image clicked in `flutter_quill_extensions` callback
* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead
* Fix the `QuillToolbarSelectAlignmentButtons`
## 9.1.1
* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure

@ -1,6 +1,6 @@
name: flutter_quill_test
description: Test utilities for flutter_quill which includes methods to simplify interacting with the editor in test cases.
version: 9.1.1
version: 9.2.0
homepage: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_test/
repository: https://github.com/singerdmx/flutter-quill/tree/master/flutter_quill_test/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/

@ -7,4 +7,4 @@ synthetic-package: false
format: true
untranslated-messages-file: lib/src/l10n/untranslated.json
nullable-getter: true
suppress-warnings: false
suppress-warnings: false

@ -27,6 +27,7 @@ import 'quill_localizations_nl.dart';
import 'quill_localizations_no.dart';
import 'quill_localizations_pl.dart';
import 'quill_localizations_pt.dart';
import 'quill_localizations_ro.dart';
import 'quill_localizations_ru.dart';
import 'quill_localizations_sr.dart';
import 'quill_localizations_sw.dart';
@ -147,6 +148,8 @@ abstract class FlutterQuillLocalizations {
Locale('pl'),
Locale('pt'),
Locale('pt', 'BR'),
Locale('ro'),
Locale('ro', 'RO'),
Locale('ru'),
Locale('sr'),
Locale('sw'),
@ -717,6 +720,7 @@ class _FlutterQuillLocalizationsDelegate
'no',
'pl',
'pt',
'ro',
'ru',
'sr',
'sw',
@ -759,6 +763,14 @@ FlutterQuillLocalizations lookupFlutterQuillLocalizations(Locale locale) {
}
break;
}
case 'ro':
{
switch (locale.countryCode) {
case 'RO':
return FlutterQuillLocalizationsRoRo();
}
break;
}
case 'zh':
{
switch (locale.countryCode) {
@ -817,6 +829,8 @@ FlutterQuillLocalizations lookupFlutterQuillLocalizations(Locale locale) {
return FlutterQuillLocalizationsPl();
case 'pt':
return FlutterQuillLocalizationsPt();
case 'ro':
return FlutterQuillLocalizationsRo();
case 'ru':
return FlutterQuillLocalizationsRu();
case 'sr':

@ -0,0 +1,545 @@
import 'quill_localizations.dart';
/// The translations for Romanian Moldavian Moldovan (`ro`).
class FlutterQuillLocalizationsRo extends FlutterQuillLocalizations {
FlutterQuillLocalizationsRo([super.locale = 'ro']);
@override
String get pasteLink => 'Lipește un link';
@override
String get ok => 'Ok';
@override
String get selectColor => 'Selectează culoarea';
@override
String get gallery => 'Galerie';
@override
String get link => 'Link';
@override
String get open => 'Deschide';
@override
String get copy => 'Copiază';
@override
String get remove => 'Elimină';
@override
String get save => 'Salvează';
@override
String get zoom => 'Zoom';
@override
String get saved => 'Salvat';
@override
String get text => 'Text';
@override
String get resize => 'Redimensionează';
@override
String get width => 'Lățime';
@override
String get height => 'Înălțime';
@override
String get size => 'Mărime';
@override
String get small => 'Mic';
@override
String get large => 'Mare';
@override
String get huge => 'Enorm';
@override
String get clear => 'Șterge';
@override
String get font => 'Font';
@override
String get search => 'Caută';
@override
String get camera => 'Cameră';
@override
String get video => 'Video';
@override
String get undo => 'Anulează';
@override
String get redo => 'Refă';
@override
String get fontFamily => 'Familie de fonturi';
@override
String get fontSize => 'Dimensiune font';
@override
String get bold => 'Îngroșat';
@override
String get subscript => 'Indice inferior';
@override
String get superscript => 'Indice superior';
@override
String get italic => 'Cursiv';
@override
String get underline => 'Subliniat';
@override
String get strikeThrough => 'Tăiat';
@override
String get inlineCode => 'Cod în linie';
@override
String get fontColor => 'Culoare font';
@override
String get backgroundColor => 'Culoare fundal';
@override
String get clearFormat => 'Șterge formatul';
@override
String get alignLeft => 'Aliniază la stânga';
@override
String get alignCenter => 'Aliniază în centru';
@override
String get alignRight => 'Aliniază la dreapta';
@override
String get justifyWinWidth => 'Justifică lățimea ferestrei';
@override
String get textDirection => 'Direcție text';
@override
String get headerStyle => 'Stil antet';
@override
String get normal => 'Normal';
@override
String get heading1 => 'Titlu 1';
@override
String get heading2 => 'Titlu 2';
@override
String get heading3 => 'Titlu 3';
@override
String get heading4 => 'Titlu 4';
@override
String get heading5 => 'Titlu 5';
@override
String get heading6 => 'Titlu 6';
@override
String get numberedList => 'Listă numerotată';
@override
String get bulletList => 'Listă cu buline';
@override
String get checkedList => 'Listă cu bifă';
@override
String get codeBlock => 'Bloc de cod';
@override
String get quote => 'Citat';
@override
String get increaseIndent => 'Crește indentarea';
@override
String get decreaseIndent => 'Scade indentarea';
@override
String get insertURL => 'Introdu URL-ul';
@override
String get visitLink => 'Vizitează link-ul';
@override
String get enterLink => 'Introdu link-ul';
@override
String get enterMedia => 'Introdu media';
@override
String get edit => 'Editează';
@override
String get apply => 'Aplică';
@override
String get hex => 'Hex';
@override
String get material => 'Material';
@override
String get color => 'Culoare';
@override
String get findText => 'Găsește text';
@override
String get moveToPreviousOccurrence => 'Mutați la apariția anterioară';
@override
String get moveToNextOccurrence => 'Mutați la apariția următoare';
@override
String get savedUsingTheNetwork => 'Salvat cu ajutorul rețelei';
@override
String get savedUsingLocalStorage => 'Salvat în stocarea locală';
@override
String get errorWhileSavingImage => 'Eroare la salvarea imaginii';
@override
String get pleaseEnterTextForYourLink =>
"Vă rugăm să introduceți un text pentru link-ul dvs. (de exemplu, 'Aflați mai multe')";
@override
String get pleaseEnterTheLinkURL =>
"Vă rugăm să introduceți URL-ul link-ului (de exemplu, 'https://example.com')";
@override
String get pleaseEnterAValidImageURL =>
'Vă rugăm să introduceți un URL de imagine valid';
@override
String get pleaseEnterAValidVideoURL =>
'Vă rugăm să introduceți un URL de video valid';
@override
String get photo => 'Fotografie';
@override
String get image => 'Imagine';
@override
String get caseSensitivityAndWholeWordSearch =>
'Sensibilitate la majuscule și căutare cuvânt întreg';
@override
String get insertImage => 'Introdu imaginea';
@override
String get pickAPhotoFromYourGallery => 'Alege o fotografie din galeria ta';
@override
String get takeAPhotoUsingYourCamera => 'Fă o fotografie folosind camera ta';
@override
String get pasteAPhotoUsingALink => 'Lipește o fotografie folosind un link';
@override
String get pickAVideoFromYourGallery => 'Alege un video din galeria ta';
@override
String get recordAVideoUsingYourCamera =>
'Înregistrează un video folosind camera ta';
@override
String get pasteAVideoUsingALink => 'Lipește un video folosind un link';
}
/// The translations for Romanian Moldavian Moldovan, as used in Romania (`ro_RO`).
class FlutterQuillLocalizationsRoRo extends FlutterQuillLocalizationsRo {
FlutterQuillLocalizationsRoRo() : super('ro_RO');
@override
String get pasteLink => 'Lipește un link';
@override
String get ok => 'Ok';
@override
String get selectColor => 'Selectează culoarea';
@override
String get gallery => 'Galerie';
@override
String get link => 'Link';
@override
String get open => 'Deschide';
@override
String get copy => 'Copiază';
@override
String get remove => 'Elimină';
@override
String get save => 'Salvează';
@override
String get zoom => 'Zoom';
@override
String get saved => 'Salvat';
@override
String get text => 'Text';
@override
String get resize => 'Redimensionează';
@override
String get width => 'Lățime';
@override
String get height => 'Înălțime';
@override
String get size => 'Mărime';
@override
String get small => 'Mic';
@override
String get large => 'Mare';
@override
String get huge => 'Enorm';
@override
String get clear => 'Șterge';
@override
String get font => 'Font';
@override
String get search => 'Caută';
@override
String get camera => 'Cameră';
@override
String get video => 'Video';
@override
String get undo => 'Anulează';
@override
String get redo => 'Refă';
@override
String get fontFamily => 'Familie de fonturi';
@override
String get fontSize => 'Dimensiune font';
@override
String get bold => 'Îngroșat';
@override
String get subscript => 'Indice inferior';
@override
String get superscript => 'Indice superior';
@override
String get italic => 'Cursiv';
@override
String get underline => 'Subliniat';
@override
String get strikeThrough => 'Tăiat';
@override
String get inlineCode => 'Cod în linie';
@override
String get fontColor => 'Culoare font';
@override
String get backgroundColor => 'Culoare fundal';
@override
String get clearFormat => 'Șterge formatul';
@override
String get alignLeft => 'Aliniază la stânga';
@override
String get alignCenter => 'Aliniază în centru';
@override
String get alignRight => 'Aliniază la dreapta';
@override
String get justifyWinWidth => 'Justifică lățimea ferestrei';
@override
String get textDirection => 'Direcție text';
@override
String get headerStyle => 'Stil antet';
@override
String get normal => 'Normal';
@override
String get heading1 => 'Titlu 1';
@override
String get heading2 => 'Titlu 2';
@override
String get heading3 => 'Titlu 3';
@override
String get heading4 => 'Titlu 4';
@override
String get heading5 => 'Titlu 5';
@override
String get heading6 => 'Titlu 6';
@override
String get numberedList => 'Listă numerotată';
@override
String get bulletList => 'Listă cu buline';
@override
String get checkedList => 'Listă cu bifă';
@override
String get codeBlock => 'Bloc de cod';
@override
String get quote => 'Citat';
@override
String get increaseIndent => 'Crește indentarea';
@override
String get decreaseIndent => 'Scade indentarea';
@override
String get insertURL => 'Introdu URL-ul';
@override
String get visitLink => 'Vizitează link-ul';
@override
String get enterLink => 'Introdu link-ul';
@override
String get enterMedia => 'Introdu media';
@override
String get edit => 'Editează';
@override
String get apply => 'Aplică';
@override
String get hex => 'Hex';
@override
String get material => 'Material';
@override
String get color => 'Culoare';
@override
String get findText => 'Găsește text';
@override
String get moveToPreviousOccurrence => 'Mutați la apariția anterioară';
@override
String get moveToNextOccurrence => 'Mutați la apariția următoare';
@override
String get savedUsingTheNetwork => 'Salvat cu ajutorul rețelei';
@override
String get savedUsingLocalStorage => 'Salvat în stocarea locală';
@override
String get errorWhileSavingImage => 'Eroare la salvarea imaginii';
@override
String get pleaseEnterTextForYourLink =>
"Vă rugăm să introduceți un text pentru link-ul dvs. (de exemplu, 'Aflați mai multe')";
@override
String get pleaseEnterTheLinkURL =>
"Vă rugăm să introduceți URL-ul link-ului (de exemplu, 'https://example.com')";
@override
String get pleaseEnterAValidImageURL =>
'Vă rugăm să introduceți un URL de imagine valid';
@override
String get pleaseEnterAValidVideoURL =>
'Vă rugăm să introduceți un URL de video valid';
@override
String get photo => 'Fotografie';
@override
String get image => 'Imagine';
@override
String get caseSensitivityAndWholeWordSearch =>
'Sensibilitate la majuscule și căutare cuvânt întreg';
@override
String get insertImage => 'Introdu imaginea';
@override
String get pickAPhotoFromYourGallery => 'Alege o fotografie din galeria ta';
@override
String get takeAPhotoUsingYourCamera => 'Fă o fotografie folosind camera ta';
@override
String get pasteAPhotoUsingALink => 'Lipește o fotografie folosind un link';
@override
String get pickAVideoFromYourGallery => 'Alege un video din galeria ta';
@override
String get recordAVideoUsingYourCamera =>
'Înregistrează un video folosind camera ta';
@override
String get pasteAVideoUsingALink => 'Lipește un video folosind un link';
}

@ -8,7 +8,7 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get pasteLink => '粘贴链接';
@override
String get ok => '';
String get ok => '';
@override
String get selectColor => '选择颜色';
@ -38,7 +38,7 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get saved => '已保存';
@override
String get text => '';
String get text => '';
@override
String get resize => '调整大小';
@ -50,16 +50,16 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get height => '高度';
@override
String get size => '大小';
String get size => '文字大小';
@override
String get small => '';
String get small => '字号';
@override
String get large => '';
String get large => '字号';
@override
String get huge => '巨大';
String get huge => '超大字号';
@override
String get clear => '清除';
@ -71,10 +71,10 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get search => '搜索';
@override
String get camera => '相机';
String get camera => '拍照';
@override
String get video => '视频';
String get video => '录像';
@override
String get undo => '撤销';
@ -83,13 +83,13 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get redo => '重做';
@override
String get fontFamily => '字体';
String get fontFamily => '字体';
@override
String get fontSize => '字号';
@override
String get bold => '';
String get bold => '';
@override
String get subscript => '下标';
@ -107,7 +107,7 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get strikeThrough => '删除线';
@override
String get inlineCode => '内代码';
String get inlineCode => '代码';
@override
String get fontColor => '字体颜色';
@ -122,7 +122,7 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get alignLeft => '左对齐';
@override
String get alignCenter => '居中';
String get alignCenter => '居中对齐';
@override
String get alignRight => '右对齐';
@ -137,40 +137,40 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get headerStyle => '标题样式';
@override
String get normal => 'Normal';
String get normal => '正文';
@override
String get heading1 => 'Heading 1';
String get heading1 => '一级标题';
@override
String get heading2 => 'Heading 2';
String get heading2 => '二级标题';
@override
String get heading3 => 'Heading 3';
String get heading3 => '三级标题';
@override
String get heading4 => 'Heading 4';
String get heading4 => '四级标题';
@override
String get heading5 => 'Heading 5';
String get heading5 => '五级标题';
@override
String get heading6 => 'Heading 6';
String get heading6 => '六级标题';
@override
String get numberedList => '编号列表';
String get numberedList => '有序列表';
@override
String get bulletList => '项目符号列表';
String get bulletList => '无序列表';
@override
String get checkedList => '选中列表';
String get checkedList => '任务列表';
@override
String get codeBlock => '代码块';
@override
String get quote => '';
String get quote => '';
@override
String get increaseIndent => '增加缩进';
@ -179,7 +179,7 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get decreaseIndent => '减少缩进';
@override
String get insertURL => '插入网址';
String get insertURL => '插入链接';
@override
String get visitLink => '访问链接';
@ -200,37 +200,37 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get hex => '十六进制';
@override
String get material => '素材';
String get material => 'Material 设计';
@override
String get color => '颜色';
@override
String get findText => '查找文本';
String get findText => '搜索文本';
@override
String get moveToPreviousOccurrence => '移到前一个匹配项';
String get moveToPreviousOccurrence => '一个匹配项';
@override
String get moveToNextOccurrence => '移到下一个匹配项';
String get moveToNextOccurrence => '下一个匹配项';
@override
String get savedUsingTheNetwork => '使用网络保存';
String get savedUsingTheNetwork => '通过网络保存';
@override
String get savedUsingLocalStorage => '使用本地存储保存';
@override
String get errorWhileSavingImage => '保存图像时出错';
String get errorWhileSavingImage => '保存图像时发生错误';
@override
String get pleaseEnterTextForYourLink => "请输入链接文本(例'了解更多'";
String get pleaseEnterTextForYourLink => "如'了解更多'";
@override
String get pleaseEnterTheLinkURL => "请输入链接网址(例'https://example.com'";
String get pleaseEnterTheLinkURL => "如'https://example.com'";
@override
String get pleaseEnterAValidImageURL => '请输入有效的图像网址';
String get pleaseEnterAValidImageURL => '请输入有效的图像URL';
@override
String get pleaseEnterAValidVideoURL => '请输入有效的视频URL';
@ -248,22 +248,22 @@ class FlutterQuillLocalizationsZh extends FlutterQuillLocalizations {
String get insertImage => '插入图像';
@override
String get pickAPhotoFromYourGallery => 'Pick a photo from your gallery';
String get pickAPhotoFromYourGallery => '从相册选取图片';
@override
String get takeAPhotoUsingYourCamera => 'Take a photo using your camera';
String get takeAPhotoUsingYourCamera => '使用相机拍照';
@override
String get pasteAPhotoUsingALink => 'Paste a photo using a link';
String get pasteAPhotoUsingALink => '从链接获取图片';
@override
String get pickAVideoFromYourGallery => 'Pick a video from your gallery';
String get pickAVideoFromYourGallery => '从相册选取视频';
@override
String get recordAVideoUsingYourCamera => 'Record a video using your camera';
String get recordAVideoUsingYourCamera => '使用相机录制';
@override
String get pasteAVideoUsingALink => 'Paste a video using a link';
String get pasteAVideoUsingALink => '从链接获取视频';
}
/// The translations for Chinese, as used in China (`zh_CN`).
@ -274,13 +274,13 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
String get pasteLink => '粘贴链接';
@override
String get ok => '';
String get ok => '确认';
@override
String get selectColor => '选择颜色';
@override
String get gallery => '簿';
String get gallery => '';
@override
String get link => '链接';
@ -298,7 +298,7 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
String get save => '保存';
@override
String get zoom => '';
String get zoom => '';
@override
String get saved => '已保存';
@ -402,6 +402,27 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
@override
String get headerStyle => '标题样式';
@override
String get normal => '正文';
@override
String get heading1 => '一级标题';
@override
String get heading2 => '二级标题';
@override
String get heading3 => '三级标题';
@override
String get heading4 => '四级标题';
@override
String get heading5 => '五级标题';
@override
String get heading6 => '六级标题';
@override
String get numberedList => '有序列表';
@ -445,7 +466,7 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
String get hex => '十六进制';
@override
String get material => '材料';
String get material => 'Material 设计';
@override
String get color => '颜色';
@ -469,10 +490,10 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
String get errorWhileSavingImage => '保存图像时发生错误';
@override
String get pleaseEnterTextForYourLink => "'了解更多'";
String get pleaseEnterTextForYourLink => "如'了解更多'";
@override
String get pleaseEnterTheLinkURL => "'https://example.com'";
String get pleaseEnterTheLinkURL => "如'https://example.com'";
@override
String get pleaseEnterAValidImageURL => '请输入有效的图像URL';
@ -491,6 +512,24 @@ class FlutterQuillLocalizationsZhCn extends FlutterQuillLocalizationsZh {
@override
String get insertImage => '插入图像';
@override
String get pickAPhotoFromYourGallery => '从相册选取图片';
@override
String get takeAPhotoUsingYourCamera => '使用相机拍照';
@override
String get pasteAPhotoUsingALink => '从链接获取图片';
@override
String get pickAVideoFromYourGallery => '从相册选取视频';
@override
String get recordAVideoUsingYourCamera => '使用相机录制';
@override
String get pasteAVideoUsingALink => '从链接获取视频';
}
/// The translations for Chinese, as used in Hong Kong (`zh_HK`).

@ -87,4 +87,4 @@
"pickAVideoFromYourGallery": "Pick a video from your gallery",
"recordAVideoUsingYourCamera": "Record a video using your camera",
"pasteAVideoUsingALink": "Paste a video using a link"
}
}

@ -0,0 +1,90 @@
{
"@@locale": "ro",
"pasteLink": "Lipește un link",
"ok": "Ok",
"selectColor": "Selectează culoarea",
"gallery": "Galerie",
"link": "Link",
"open": "Deschide",
"copy": "Copiază",
"remove": "Elimină",
"save": "Salvează",
"zoom": "Zoom",
"saved": "Salvat",
"text": "Text",
"resize": "Redimensionează",
"width": "Lățime",
"height": "Înălțime",
"size": "Mărime",
"small": "Mic",
"large": "Mare",
"huge": "Enorm",
"clear": "Șterge",
"font": "Font",
"search": "Caută",
"camera": "Cameră",
"video": "Video",
"undo": "Anulează",
"redo": "Refă",
"fontFamily": "Familie de fonturi",
"fontSize": "Dimensiune font",
"bold": "Îngroșat",
"subscript": "Indice inferior",
"superscript": "Indice superior",
"italic": "Cursiv",
"underline": "Subliniat",
"strikeThrough": "Tăiat",
"inlineCode": "Cod în linie",
"fontColor": "Culoare font",
"backgroundColor": "Culoare fundal",
"clearFormat": "Șterge formatul",
"alignLeft": "Aliniază la stânga",
"alignCenter": "Aliniază în centru",
"alignRight": "Aliniază la dreapta",
"justifyWinWidth": "Justifică lățimea ferestrei",
"textDirection": "Direcție text",
"headerStyle": "Stil antet",
"normal": "Normal",
"heading1": "Titlu 1",
"heading2": "Titlu 2",
"heading3": "Titlu 3",
"heading4": "Titlu 4",
"heading5": "Titlu 5",
"heading6": "Titlu 6",
"numberedList": "Listă numerotată",
"bulletList": "Listă cu buline",
"checkedList": "Listă cu bifă",
"codeBlock": "Bloc de cod",
"quote": "Citat",
"increaseIndent": "Crește indentarea",
"decreaseIndent": "Scade indentarea",
"insertURL": "Introdu URL-ul",
"visitLink": "Vizitează link-ul",
"enterLink": "Introdu link-ul",
"enterMedia": "Introdu media",
"edit": "Editează",
"apply": "Aplică",
"hex": "Hex",
"material": "Material",
"color": "Culoare",
"findText": "Găsește text",
"moveToPreviousOccurrence": "Mutați la apariția anterioară",
"moveToNextOccurrence": "Mutați la apariția următoare",
"savedUsingTheNetwork": "Salvat cu ajutorul rețelei",
"savedUsingLocalStorage": "Salvat în stocarea locală",
"errorWhileSavingImage": "Eroare la salvarea imaginii",
"pleaseEnterTextForYourLink": "Vă rugăm să introduceți un text pentru link-ul dvs. (de exemplu, 'Aflați mai multe')",
"pleaseEnterTheLinkURL": "Vă rugăm să introduceți URL-ul link-ului (de exemplu, 'https://example.com')",
"pleaseEnterAValidImageURL": "Vă rugăm să introduceți un URL de imagine valid",
"pleaseEnterAValidVideoURL": "Vă rugăm să introduceți un URL de video valid",
"photo": "Fotografie",
"image": "Imagine",
"caseSensitivityAndWholeWordSearch": "Sensibilitate la majuscule și căutare cuvânt întreg",
"insertImage": "Introdu imaginea",
"pickAPhotoFromYourGallery": "Alege o fotografie din galeria ta",
"takeAPhotoUsingYourCamera": "Fă o fotografie folosind camera ta",
"pasteAPhotoUsingALink": "Lipește o fotografie folosind un link",
"pickAVideoFromYourGallery": "Alege un video din galeria ta",
"recordAVideoUsingYourCamera": "Înregistrează un video folosind camera ta",
"pasteAVideoUsingALink": "Lipește un video folosind un link"
}

@ -0,0 +1,90 @@
{
"@@locale": "ro_RO",
"pasteLink": "Lipește un link",
"ok": "Ok",
"selectColor": "Selectează culoarea",
"gallery": "Galerie",
"link": "Link",
"open": "Deschide",
"copy": "Copiază",
"remove": "Elimină",
"save": "Salvează",
"zoom": "Zoom",
"saved": "Salvat",
"text": "Text",
"resize": "Redimensionează",
"width": "Lățime",
"height": "Înălțime",
"size": "Mărime",
"small": "Mic",
"large": "Mare",
"huge": "Enorm",
"clear": "Șterge",
"font": "Font",
"search": "Caută",
"camera": "Cameră",
"video": "Video",
"undo": "Anulează",
"redo": "Refă",
"fontFamily": "Familie de fonturi",
"fontSize": "Dimensiune font",
"bold": "Îngroșat",
"subscript": "Indice inferior",
"superscript": "Indice superior",
"italic": "Cursiv",
"underline": "Subliniat",
"strikeThrough": "Tăiat",
"inlineCode": "Cod în linie",
"fontColor": "Culoare font",
"backgroundColor": "Culoare fundal",
"clearFormat": "Șterge formatul",
"alignLeft": "Aliniază la stânga",
"alignCenter": "Aliniază în centru",
"alignRight": "Aliniază la dreapta",
"justifyWinWidth": "Justifică lățimea ferestrei",
"textDirection": "Direcție text",
"headerStyle": "Stil antet",
"normal": "Normal",
"heading1": "Titlu 1",
"heading2": "Titlu 2",
"heading3": "Titlu 3",
"heading4": "Titlu 4",
"heading5": "Titlu 5",
"heading6": "Titlu 6",
"numberedList": "Listă numerotată",
"bulletList": "Listă cu buline",
"checkedList": "Listă cu bifă",
"codeBlock": "Bloc de cod",
"quote": "Citat",
"increaseIndent": "Crește indentarea",
"decreaseIndent": "Scade indentarea",
"insertURL": "Introdu URL-ul",
"visitLink": "Vizitează link-ul",
"enterLink": "Introdu link-ul",
"enterMedia": "Introdu media",
"edit": "Editează",
"apply": "Aplică",
"hex": "Hex",
"material": "Material",
"color": "Culoare",
"findText": "Găsește text",
"moveToPreviousOccurrence": "Mutați la apariția anterioară",
"moveToNextOccurrence": "Mutați la apariția următoare",
"savedUsingTheNetwork": "Salvat cu ajutorul rețelei",
"savedUsingLocalStorage": "Salvat în stocarea locală",
"errorWhileSavingImage": "Eroare la salvarea imaginii",
"pleaseEnterTextForYourLink": "Vă rugăm să introduceți un text pentru link-ul dvs. (de exemplu, 'Aflați mai multe')",
"pleaseEnterTheLinkURL": "Vă rugăm să introduceți URL-ul link-ului (de exemplu, 'https://example.com')",
"pleaseEnterAValidImageURL": "Vă rugăm să introduceți un URL de imagine valid",
"pleaseEnterAValidVideoURL": "Vă rugăm să introduceți un URL de video valid",
"photo": "Fotografie",
"image": "Imagine",
"caseSensitivityAndWholeWordSearch": "Sensibilitate la majuscule și căutare cuvânt întreg",
"insertImage": "Introdu imaginea",
"pickAPhotoFromYourGallery": "Alege o fotografie din galeria ta",
"takeAPhotoUsingYourCamera": "Fă o fotografie folosind camera ta",
"pasteAPhotoUsingALink": "Lipește o fotografie folosind un link",
"pickAVideoFromYourGallery": "Alege un video din galeria ta",
"recordAVideoUsingYourCamera": "Înregistrează un video folosind camera ta",
"pasteAVideoUsingALink": "Lipește un video folosind un link"
}

@ -1,7 +1,7 @@
{
"@@locale": "zh",
"pasteLink": "粘贴链接",
"ok": "确",
"ok": "确",
"selectColor": "选择颜色",
"gallery": "相册",
"link": "链接",
@ -11,67 +11,80 @@
"save": "保存",
"zoom": "缩放",
"saved": "已保存",
"text": "文",
"text": "文",
"resize": "调整大小",
"width": "宽度",
"height": "高度",
"size": "大小",
"small": "小",
"large": "大",
"huge": "巨大",
"size": "文字大小",
"small": "小字号",
"large": "大字号",
"huge": "超大字号",
"clear": "清除",
"font": "字体",
"search": "搜索",
"camera": "相机",
"video": "视频",
"camera": "拍照",
"video": "录像",
"undo": "撤销",
"redo": "重做",
"fontFamily": "字体",
"fontFamily": "字体",
"fontSize": "字号",
"bold": "粗",
"bold": "粗",
"subscript": "下标",
"superscript": "上标",
"italic": "斜体",
"underline": "下划线",
"strikeThrough": "删除线",
"inlineCode": "内代码",
"inlineCode": "内代码",
"fontColor": "字体颜色",
"backgroundColor": "背景颜色",
"clearFormat": "清除格式",
"alignLeft": "左对齐",
"alignCenter": "居中",
"alignCenter": "居中对齐",
"alignRight": "右对齐",
"justifyWinWidth": "两端对齐",
"textDirection": "文本方向",
"headerStyle": "标题样式",
"numberedList": "编号列表",
"bulletList": "项目符号列表",
"checkedList": "选中列表",
"normal": "正文",
"heading1": "一级标题",
"heading2": "二级标题",
"heading3": "三级标题",
"heading4": "四级标题",
"heading5": "五级标题",
"heading6": "六级标题",
"numberedList": "有序列表",
"bulletList": "无序列表",
"checkedList": "任务列表",
"codeBlock": "代码块",
"quote": "引用",
"quote": "引",
"increaseIndent": "增加缩进",
"decreaseIndent": "减少缩进",
"insertURL": "插入网址",
"insertURL": "插入链接",
"visitLink": "访问链接",
"enterLink": "输入链接",
"enterMedia": "输入媒体",
"edit": "编辑",
"apply": "应用",
"hex": "十六进制",
"material": "素材",
"material": "Material 设计",
"color": "颜色",
"findText": "查找文本",
"moveToPreviousOccurrence": "移到前一个匹配项",
"moveToNextOccurrence": "移到下一个匹配项",
"savedUsingTheNetwork": "使用网络保存",
"findText": "搜索文本",
"moveToPreviousOccurrence": "一个匹配项",
"moveToNextOccurrence": "下一个匹配项",
"savedUsingTheNetwork": "通过网络保存",
"savedUsingLocalStorage": "使用本地存储保存",
"errorWhileSavingImage": "保存图像时出错",
"pleaseEnterTextForYourLink": "请输入链接文本(例如,'了解更多')",
"pleaseEnterTheLinkURL": "请输入链接网址(例如,'https://example.com')",
"pleaseEnterAValidImageURL": "请输入有效的图像网址",
"errorWhileSavingImage": "保存图像时发生错误",
"pleaseEnterTextForYourLink": "如'了解更多'",
"pleaseEnterTheLinkURL": "如'https://example.com'",
"pleaseEnterAValidImageURL": "请输入有效的图像URL",
"pleaseEnterAValidVideoURL": "请输入有效的视频URL",
"photo": "照片",
"image": "图像",
"pleaseEnterAValidVideoURL": "请输入有效的视频URL",
"caseSensitivityAndWholeWordSearch": "区分大小写和整词搜索",
"insertImage": "插入图像"
}
"insertImage": "插入图像",
"pickAPhotoFromYourGallery": "从相册选取图片",
"takeAPhotoUsingYourCamera": "使用相机拍照",
"pasteAPhotoUsingALink": "从链接获取图片",
"pickAVideoFromYourGallery": "从相册选取视频",
"recordAVideoUsingYourCamera": "使用相机录制",
"pasteAVideoUsingALink": "从链接获取视频"
}

@ -1,15 +1,15 @@
{
"@@locale": "zh_CN",
"pasteLink": "粘贴链接",
"ok": "",
"ok": "确认",
"selectColor": "选择颜色",
"gallery": "相簿",
"gallery": "相",
"link": "链接",
"open": "打开",
"copy": "复制",
"remove": "移除",
"save": "保存",
"zoom": "放",
"zoom": "放",
"saved": "已保存",
"text": "文字",
"resize": "调整大小",
@ -44,6 +44,13 @@
"justifyWinWidth": "两端对齐",
"textDirection": "文本方向",
"headerStyle": "标题样式",
"normal": "正文",
"heading1": "一级标题",
"heading2": "二级标题",
"heading3": "三级标题",
"heading4": "四级标题",
"heading5": "五级标题",
"heading6": "六级标题",
"numberedList": "有序列表",
"bulletList": "无序列表",
"checkedList": "任务列表",
@ -57,22 +64,27 @@
"enterMedia": "输入媒体",
"edit": "编辑",
"apply": "应用",
"hex": "十六进制",
"material": "Material 设计",
"color": "颜色",
"findText": "搜索文本",
"moveToPreviousOccurrence": "上一个匹配项",
"moveToNextOccurrence": "下一个匹配项",
"savedUsingTheNetwork": "通过网络保存",
"savedUsingLocalStorage": "使用本地存储保存",
"errorWhileSavingImage": "保存图像时发生错误",
"pleaseEnterTextForYourLink": "'了解更多'",
"pleaseEnterTheLinkURL": "'https://example.com'",
"pleaseEnterTextForYourLink": "如'了解更多'",
"pleaseEnterTheLinkURL": "如'https://example.com'",
"pleaseEnterAValidImageURL": "请输入有效的图像URL",
"hex": "十六进制",
"material": "材料",
"color": "颜色",
"pleaseEnterAValidVideoURL": "请输入有效的视频URL",
"photo": "照片",
"image": "图像",
"caseSensitivityAndWholeWordSearch": "区分大小写和整词搜索",
"insertImage": "插入图像"
}
"insertImage": "插入图像",
"pickAPhotoFromYourGallery": "从相册选取图片",
"takeAPhotoUsingYourCamera": "使用相机拍照",
"pasteAPhotoUsingALink": "从链接获取图片",
"pickAVideoFromYourGallery": "从相册选取视频",
"recordAVideoUsingYourCamera": "使用相机录制",
"pasteAVideoUsingALink": "从链接获取视频"
}

@ -442,38 +442,6 @@
"pasteAVideoUsingALink"
],
"zh": [
"normal",
"heading1",
"heading2",
"heading3",
"heading4",
"heading5",
"heading6",
"pickAPhotoFromYourGallery",
"takeAPhotoUsingYourCamera",
"pasteAPhotoUsingALink",
"pickAVideoFromYourGallery",
"recordAVideoUsingYourCamera",
"pasteAVideoUsingALink"
],
"zh_CN": [
"normal",
"heading1",
"heading2",
"heading3",
"heading4",
"heading5",
"heading6",
"pickAPhotoFromYourGallery",
"takeAPhotoUsingYourCamera",
"pasteAPhotoUsingALink",
"pickAVideoFromYourGallery",
"recordAVideoUsingYourCamera",
"pasteAVideoUsingALink"
],
"zh_HK": [
"normal",
"heading1",

@ -1,4 +1,7 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:flutter/widgets.dart' show IconData, immutable;
import '../../../documents/attribute.dart';
import '../base_button_configurations.dart';
class QuillToolbarSelectAlignmentButtonExtraOptions
@ -24,6 +27,11 @@ class QuillToolbarSelectAlignmentButtonOptions
/// This will called on every select alignment button
super.childBuilder,
super.iconTheme,
this.attributes,
this.showLeftAlignment = true,
this.showCenterAlignment = true,
this.showRightAlignment = true,
this.showJustifyAlignment = true,
});
/// Default to
@ -37,6 +45,33 @@ class QuillToolbarSelectAlignmentButtonOptions
/// By default will use the localized tooltips
final QuillSelectAlignmentValues<String>? tooltips;
final List<Attribute>? attributes;
final bool showLeftAlignment;
final bool showCenterAlignment;
final bool showRightAlignment;
final bool showJustifyAlignment;
QuillToolbarSelectAlignmentButtonOptions copyWith({
QuillSelectAlignmentValues<IconData>? iconsData,
QuillSelectAlignmentValues<String>? tooltips,
List<Attribute>? attributes,
bool? showLeftAlignment,
bool? showCenterAlignment,
bool? showRightAlignment,
bool? showJustifyAlignment,
}) {
return QuillToolbarSelectAlignmentButtonOptions(
iconsData: iconsData ?? this.iconsData,
tooltips: tooltips ?? this.tooltips,
attributes: attributes ?? this.attributes,
showLeftAlignment: showLeftAlignment ?? this.showLeftAlignment,
showCenterAlignment: showCenterAlignment ?? this.showCenterAlignment,
showRightAlignment: showRightAlignment ?? this.showRightAlignment,
showJustifyAlignment: showJustifyAlignment ?? this.showJustifyAlignment,
);
}
}
/// A helper class which hold all the values for the alignments of the

@ -71,22 +71,22 @@ class QuillController extends ChangeNotifier {
// from the current line
/// The current font family, null to use the default one
String? _selectedFontFamily;
MapEntry<String, String>? _selectedFontFamily;
/// The current font family, null to use the default one
String? get selectedFontFamily => _selectedFontFamily;
MapEntry<String, String>? get selectedFontFamily => _selectedFontFamily;
void selectFontFamily(String? newFontFamily) {
void selectFontFamily(MapEntry<String, String>? newFontFamily) {
_selectedFontFamily = newFontFamily;
}
/// The current font size, null to use the default one
String? _selectedFontSize;
MapEntry<String, String>? _selectedFontSize;
/// The current font size, null to use the default one
String? get selectedFontSize => _selectedFontSize;
MapEntry<String, String>? get selectedFontSize => _selectedFontSize;
void selectFontSize(String? newFontSize) {
void selectFontSize(MapEntry<String, String>? newFontSize) {
_selectedFontSize = newFontSize;
}

@ -7,10 +7,8 @@ import 'package:flutter/material.dart' show Theme;
import 'package:flutter/scheduler.dart' show SchedulerBinding;
import 'package:flutter/services.dart';
import '../../models/documents/attribute.dart';
import '../../models/documents/document.dart';
import '../../utils/delta.dart';
import '../../utils/font.dart';
import '../editor/editor.dart';
import 'raw_editor.dart';
@ -208,27 +206,27 @@ mixin RawEditorStateTextInputClientMixin on EditorState
value.selection,
);
if (widget.configurations.controller.selectedFontFamily != null) {
widget.configurations.controller.formatSelection(
Attribute.fromKeyValue(
Attribute.font.key,
widget.configurations.controller.selectedFontFamily,
),
);
}
// if (widget.configurations.controller.selectedFontFamily != null) {
// widget.configurations.controller.formatSelection(
// Attribute.fromKeyValue(
// Attribute.font.key,
// widget.configurations.controller.selectedFontFamily?.value,
// ),
// );
// }
if (widget.configurations.controller.selectedFontSize != null) {
widget.configurations.controller.formatSelection(
Attribute.fromKeyValue(
Attribute.size.key,
widget.configurations.controller.selectedFontSize == '0'
? null
: getFontSize(
widget.configurations.controller.selectedFontSize,
),
),
);
}
// if (widget.configurations.controller.selectedFontSize != null) {
// widget.configurations.controller.formatSelection(
// Attribute.fromKeyValue(
// Attribute.size.key,
// widget.configurations.controller.selectedFontSize == '0'
// ? null
// : getFontSize(
// widget.configurations.controller.selectedFontSize,
// ),
// ),
// );
// }
// if (widget.configurations.controller.keepStyleOnNewLine) {
// widget.configurations.controller.selectedStyles.forEach((key, value) {
// if (value ?? false) {

@ -4,46 +4,34 @@ import '../../../../models/documents/attribute.dart';
import '../../../quill/quill_controller.dart';
import '../../base_toolbar.dart';
enum _AlignmentOptions {
left(attribute: Attribute.leftAlignment),
center(attribute: Attribute.centerAlignment),
right(attribute: Attribute.rightAlignment),
justifyMinWidth(attribute: Attribute.justifyAlignment);
const _AlignmentOptions({required this.attribute});
final Attribute attribute;
}
class QuillToolbarSelectAlignmentButtons extends StatelessWidget {
const QuillToolbarSelectAlignmentButtons({
required this.controller,
this.options = const QuillToolbarSelectAlignmentButtonOptions(),
this.showLeftAlignment,
this.showCenterAlignment,
this.showRightAlignment,
this.showJustifyAlignment,
this.padding,
super.key,
});
final QuillController controller;
final QuillToolbarSelectAlignmentButtonOptions options;
final bool? showLeftAlignment;
final bool? showCenterAlignment;
final bool? showRightAlignment;
final bool? showJustifyAlignment;
final EdgeInsetsGeometry? padding;
List<Attribute> get _attrbuites {
return options.attributes ??
[
if (options.showLeftAlignment) Attribute.leftAlignment,
if (options.showCenterAlignment) Attribute.centerAlignment,
if (options.showRightAlignment) Attribute.rightAlignment,
if (options.showJustifyAlignment) Attribute.justifyAlignment,
];
}
@override
Widget build(BuildContext context) {
return Row(
mainAxisSize: MainAxisSize.min,
children: _AlignmentOptions.values
children: _attrbuites
.map((e) => QuillToolbarToggleStyleButton(
controller: controller,
attribute: e.attribute,
attribute: e,
options: QuillToolbarToggleStyleButtonOptions(
iconData: options.iconData,
iconSize: options.iconSize,

@ -41,17 +41,13 @@ class QuillToolbarFontFamilyButtonState
return widget.options;
}
// Style get _selectionStyle => controller.getSelectionStyle();
@override
void initState() {
super.initState();
_initState();
}
void _initState() {
// controller.addListener(_didChangeEditingValue);
}
void _initState() {}
@override
void didChangeDependencies() {
@ -59,12 +55,6 @@ class QuillToolbarFontFamilyButtonState
_currentValue = _defaultDisplayText;
}
// @override
// void dispose() {
// controller.removeListener(_didChangeEditingValue);
// super.dispose();
// }
String get _defaultDisplayText {
return options.initialValue ??
widget.options.defaultDisplayText ??
@ -218,7 +208,7 @@ class QuillToolbarFontFamilyButtonState
controller.selectFontFamily(null);
return;
}
controller.selectFontFamily(fontFamily.value);
controller.selectFontFamily(fontFamily);
},
child: Text(
fontFamily.key.toString(),
@ -272,7 +262,7 @@ class QuillToolbarFontFamilyButtonState
enabled: hasFinalWidth,
wrapper: (child) => Expanded(child: child),
child: Text(
widget.controller.selectedFontFamily ?? _currentValue,
widget.controller.selectedFontFamily?.key ?? _currentValue,
maxLines: 1,
overflow: options.labelOverflow,
style: options.style ??

@ -181,7 +181,7 @@ class QuillToolbarFontSizeButtonState
controller.selectFontSize(null);
return;
}
controller.selectFontSize(fontSize.value);
controller.selectFontSize(fontSize);
},
child: Text(
fontSize.key.toString(),
@ -231,7 +231,7 @@ class QuillToolbarFontSizeButtonState
enabled: hasFinalWidth,
wrapper: (child) => Expanded(child: child),
child: Text(
getLabel(widget.controller.selectedFontSize) ??
getLabel(widget.controller.selectedFontSize?.key) ??
getLabel(_currentValue) ??
'',
overflow: options.labelOverflow,

@ -168,11 +168,13 @@ class QuillSimpleToolbar extends StatelessWidget
if (configurations.showAlignmentButtons)
QuillToolbarSelectAlignmentButtons(
controller: globalController,
options: toolbarConfigurations.buttonOptions.selectAlignmentButtons,
showLeftAlignment: configurations.showLeftAlignment,
showCenterAlignment: configurations.showCenterAlignment,
showRightAlignment: configurations.showRightAlignment,
showJustifyAlignment: configurations.showJustifyAlignment,
options: toolbarConfigurations.buttonOptions.selectAlignmentButtons
.copyWith(
showLeftAlignment: configurations.showLeftAlignment,
showCenterAlignment: configurations.showCenterAlignment,
showRightAlignment: configurations.showRightAlignment,
showJustifyAlignment: configurations.showJustifyAlignment,
),
),
if (configurations.showDirection)
QuillToolbarToggleStyleButton(

@ -1,28 +1,28 @@
name: flutter_quill
description: A rich text editor built for the modern Android, iOS, web and desktop platforms. It is the WYSIWYG editor and a Quill component for Flutter.
version: 9.1.1
version: 9.2.0
homepage: https://1o24bbs.com/c/bulletjournal/108/
repository: https://github.com/singerdmx/flutter-quill/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/
documentation: https://github.com/singerdmx/flutter-quill/
topics:
- ui
- widgets
- widget
- rich-text-editor
- quill
- ui
- widgets
- widget
- rich-text-editor
- quill
screenshots:
- description: 'Screenshot 1'
path: example/assets/images/screenshot_1.png
- description: 'Screenshot 2'
path: example/assets/images/screenshot_2.png
- description: 'Screenshot 3'
path: example/assets/images/screenshot_3.png
- description: 'Screenshot 4'
path: example/assets/images/screenshot_4.png
- description: "Screenshot 1"
path: example/assets/images/screenshot_1.png
- description: "Screenshot 2"
path: example/assets/images/screenshot_2.png
- description: "Screenshot 3"
path: example/assets/images/screenshot_3.png
- description: "Screenshot 4"
path: example/assets/images/screenshot_4.png
platforms:
android:
ios:
@ -32,7 +32,7 @@ platforms:
windows:
environment:
sdk: '>=3.1.6 <4.0.0'
sdk: ">=3.1.6 <4.0.0"
flutter: ">=3.16.0"
dependencies:

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## 9.2.0
* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0
* Add on image clicked in `flutter_quill_extensions` callback
* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead
* Fix the `QuillToolbarSelectAlignmentButtons`
## 9.1.1
* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure

@ -1,6 +1,6 @@
name: quill_html_converter
description: A extension for flutter_quill package to add support for dealing with conversion to/from html
version: 9.1.1
version: 9.2.0
homepage: https://github.com/singerdmx/flutter-quill/tree/master/quill_html_converter/
repository: https://github.com/singerdmx/flutter-quill/tree/master/quill_html_converter/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/

@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## 9.2.0
* Require minimum version `6.0.0` of `flutter_keyboard_visibility` to fix some build issues with Android Gradle Plugin 8.2.0
* Add on image clicked in `flutter_quill_extensions` callback
* Deprecate `globalIconSize` and `globalIconButtonFactor`, use `iconSize` and `iconButtonFactor` instead
* Fix the `QuillToolbarSelectAlignmentButtons`
## 9.1.1
* Require `super_clipboard` minimum version `0.8.1` to fix some bug with Linux build failure

@ -1,6 +1,6 @@
name: quill_pdf_converter
description: A extension for flutter_quill package to add support for dealing with conversion to pdf
version: 9.1.1
version: 9.2.0
homepage: https://github.com/singerdmx/flutter-quill/tree/master/quill_pdf_converter/
repository: https://github.com/singerdmx/flutter-quill/tree/master/quill_pdf_converter/
issue_tracker: https://github.com/singerdmx/flutter-quill/issues/

@ -1 +1 @@
const version = '9.1.1';
const version = '9.2.0';

Loading…
Cancel
Save