@@ -9,171 +9,197 @@ import 'editor_keyboard_shortcut_actions.dart';
99final _isDesktopMacOS = isMacOS;
1010
1111@internal
12- Map <SingleActivator , Intent > defaultSinlgeActivatorIntents () {
12+ Map <SingleActivator , Intent > defaultSinlgeActivatorIntents (
13+ QuillShortcutConfiguration shortCutConfig) {
1314 return {
14- const SingleActivator (
15- LogicalKeyboardKey .escape,
16- ): const HideSelectionToolbarIntent (),
17- SingleActivator (
18- LogicalKeyboardKey .keyZ,
19- control: ! _isDesktopMacOS,
20- meta: _isDesktopMacOS,
21- ): const UndoTextIntent (SelectionChangedCause .keyboard),
22- SingleActivator (
23- LogicalKeyboardKey .keyY,
24- control: ! _isDesktopMacOS,
25- meta: _isDesktopMacOS,
26- ): const RedoTextIntent (SelectionChangedCause .keyboard),
15+ if (shortCutConfig.enableHideSelectionToolbar)
16+ const SingleActivator (
17+ LogicalKeyboardKey .escape,
18+ ): const HideSelectionToolbarIntent (),
19+ if (shortCutConfig.enableUndo)
20+ SingleActivator (
21+ LogicalKeyboardKey .keyZ,
22+ control: ! _isDesktopMacOS,
23+ meta: _isDesktopMacOS,
24+ ): const UndoTextIntent (SelectionChangedCause .keyboard),
25+ if (shortCutConfig.enableRedo)
26+ SingleActivator (
27+ LogicalKeyboardKey .keyY,
28+ control: ! _isDesktopMacOS,
29+ meta: _isDesktopMacOS,
30+ ): const RedoTextIntent (SelectionChangedCause .keyboard),
2731
2832 // Selection formatting.
29- SingleActivator (
30- LogicalKeyboardKey .keyB,
31- control: ! _isDesktopMacOS,
32- meta: _isDesktopMacOS,
33- ): const ToggleTextStyleIntent (Attribute .bold),
34- SingleActivator (
35- LogicalKeyboardKey .keyU,
36- control: ! _isDesktopMacOS,
37- meta: _isDesktopMacOS,
38- ): const ToggleTextStyleIntent (Attribute .underline),
39- SingleActivator (
40- LogicalKeyboardKey .keyI,
41- control: ! _isDesktopMacOS,
42- meta: _isDesktopMacOS,
43- ): const ToggleTextStyleIntent (Attribute .italic),
44- SingleActivator (
45- LogicalKeyboardKey .keyS,
46- control: ! _isDesktopMacOS,
47- meta: _isDesktopMacOS,
48- shift: true ,
49- ): const ToggleTextStyleIntent (Attribute .strikeThrough),
50- SingleActivator (
51- LogicalKeyboardKey .backquote,
52- control: ! _isDesktopMacOS,
53- meta: _isDesktopMacOS,
54- ): const ToggleTextStyleIntent (Attribute .inlineCode),
55- SingleActivator (
56- LogicalKeyboardKey .tilde,
57- control: ! _isDesktopMacOS,
58- meta: _isDesktopMacOS,
59- shift: true ,
60- ): const ToggleTextStyleIntent (Attribute .codeBlock),
61- SingleActivator (
62- LogicalKeyboardKey .keyB,
63- control: ! _isDesktopMacOS,
64- meta: _isDesktopMacOS,
65- shift: true ,
66- ): const ToggleTextStyleIntent (Attribute .blockQuote),
67- SingleActivator (
68- LogicalKeyboardKey .keyK,
69- control: ! _isDesktopMacOS,
70- meta: _isDesktopMacOS,
71- ): const QuillEditorApplyLinkIntent (),
33+ if (shortCutConfig.enableBold)
34+ SingleActivator (
35+ LogicalKeyboardKey .keyB,
36+ control: ! _isDesktopMacOS,
37+ meta: _isDesktopMacOS,
38+ ): const ToggleTextStyleIntent (Attribute .bold),
39+ if (shortCutConfig.enableUnderline)
40+ SingleActivator (
41+ LogicalKeyboardKey .keyU,
42+ control: ! _isDesktopMacOS,
43+ meta: _isDesktopMacOS,
44+ ): const ToggleTextStyleIntent (Attribute .underline),
45+ if (shortCutConfig.enableItalic)
46+ SingleActivator (
47+ LogicalKeyboardKey .keyI,
48+ control: ! _isDesktopMacOS,
49+ meta: _isDesktopMacOS,
50+ ): const ToggleTextStyleIntent (Attribute .italic),
51+ if (shortCutConfig.enableStrikeThrough)
52+ SingleActivator (
53+ LogicalKeyboardKey .keyS,
54+ control: ! _isDesktopMacOS,
55+ meta: _isDesktopMacOS,
56+ shift: true ,
57+ ): const ToggleTextStyleIntent (Attribute .strikeThrough),
58+ if (shortCutConfig.enableInlineCode)
59+ SingleActivator (
60+ LogicalKeyboardKey .backquote,
61+ control: ! _isDesktopMacOS,
62+ meta: _isDesktopMacOS,
63+ ): const ToggleTextStyleIntent (Attribute .inlineCode),
64+ if (shortCutConfig.enableCodeBlock)
65+ SingleActivator (
66+ LogicalKeyboardKey .tilde,
67+ control: ! _isDesktopMacOS,
68+ meta: _isDesktopMacOS,
69+ shift: true ,
70+ ): const ToggleTextStyleIntent (Attribute .codeBlock),
71+ if (shortCutConfig.enableBlockQuote)
72+ SingleActivator (
73+ LogicalKeyboardKey .keyB,
74+ control: ! _isDesktopMacOS,
75+ meta: _isDesktopMacOS,
76+ shift: true ,
77+ ): const ToggleTextStyleIntent (Attribute .blockQuote),
78+ if (shortCutConfig.enableLink)
79+ SingleActivator (
80+ LogicalKeyboardKey .keyK,
81+ control: ! _isDesktopMacOS,
82+ meta: _isDesktopMacOS,
83+ ): const QuillEditorApplyLinkIntent (),
7284
7385 // Lists
74- SingleActivator (
75- LogicalKeyboardKey .keyL,
76- control: ! _isDesktopMacOS,
77- meta: _isDesktopMacOS,
78- shift: true ,
79- ): const ToggleTextStyleIntent (Attribute .ul),
80- SingleActivator (
81- LogicalKeyboardKey .keyO,
82- control: ! _isDesktopMacOS,
83- meta: _isDesktopMacOS,
84- shift: true ,
85- ): const ToggleTextStyleIntent (Attribute .ol),
86- SingleActivator (
87- LogicalKeyboardKey .keyC,
88- control: ! _isDesktopMacOS,
89- meta: _isDesktopMacOS,
90- shift: true ,
91- ): const QuillEditorApplyCheckListIntent (),
86+ if (shortCutConfig.enableUnorderedList)
87+ SingleActivator (
88+ LogicalKeyboardKey .keyL,
89+ control: ! _isDesktopMacOS,
90+ meta: _isDesktopMacOS,
91+ shift: true ,
92+ ): const ToggleTextStyleIntent (Attribute .ul),
93+ if (shortCutConfig.enableOrderedList)
94+ SingleActivator (
95+ LogicalKeyboardKey .keyO,
96+ control: ! _isDesktopMacOS,
97+ meta: _isDesktopMacOS,
98+ shift: true ,
99+ ): const ToggleTextStyleIntent (Attribute .ol),
100+ if (shortCutConfig.enableCheckList)
101+ SingleActivator (
102+ LogicalKeyboardKey .keyC,
103+ control: ! _isDesktopMacOS,
104+ meta: _isDesktopMacOS,
105+ shift: true ,
106+ ): const QuillEditorApplyCheckListIntent (),
92107
93108 // Indents
94- SingleActivator (
95- LogicalKeyboardKey .keyM,
96- control: ! _isDesktopMacOS,
97- meta: _isDesktopMacOS,
98- ): const IndentSelectionIntent (true ),
99- SingleActivator (
100- LogicalKeyboardKey .keyM,
101- control: ! _isDesktopMacOS,
102- meta: _isDesktopMacOS,
103- shift: true ,
104- ): const IndentSelectionIntent (false ),
109+ if (shortCutConfig.enableIndent)
110+ SingleActivator (
111+ LogicalKeyboardKey .keyM,
112+ control: ! _isDesktopMacOS,
113+ meta: _isDesktopMacOS,
114+ ): const IndentSelectionIntent (true ),
115+ if (shortCutConfig.enableIndent)
116+ SingleActivator (
117+ LogicalKeyboardKey .keyM,
118+ control: ! _isDesktopMacOS,
119+ meta: _isDesktopMacOS,
120+ shift: true ,
121+ ): const IndentSelectionIntent (false ),
105122
106123 // Headers
107- SingleActivator (
108- LogicalKeyboardKey .digit1,
109- control: ! _isDesktopMacOS,
110- meta: _isDesktopMacOS,
111- ): const QuillEditorApplyHeaderIntent (Attribute .h1),
112- SingleActivator (
113- LogicalKeyboardKey .digit2,
114- control: ! _isDesktopMacOS,
115- meta: _isDesktopMacOS,
116- ): const QuillEditorApplyHeaderIntent (Attribute .h2),
117- SingleActivator (
118- LogicalKeyboardKey .digit3,
119- control: ! _isDesktopMacOS,
120- meta: _isDesktopMacOS,
121- ): const QuillEditorApplyHeaderIntent (Attribute .h3),
122- SingleActivator (
123- LogicalKeyboardKey .digit4,
124- control: ! _isDesktopMacOS,
125- meta: _isDesktopMacOS,
126- ): const QuillEditorApplyHeaderIntent (Attribute .h4),
127- SingleActivator (
128- LogicalKeyboardKey .digit5,
129- control: ! _isDesktopMacOS,
130- meta: _isDesktopMacOS,
131- ): const QuillEditorApplyHeaderIntent (Attribute .h5),
132- SingleActivator (
133- LogicalKeyboardKey .digit6,
134- control: ! _isDesktopMacOS,
135- meta: _isDesktopMacOS,
136- ): const QuillEditorApplyHeaderIntent (Attribute .h6),
137- SingleActivator (
138- LogicalKeyboardKey .digit0,
139- control: ! _isDesktopMacOS,
140- meta: _isDesktopMacOS,
141- ): const QuillEditorApplyHeaderIntent (Attribute .header),
142-
143- SingleActivator (
144- LogicalKeyboardKey .keyG,
145- control: ! _isDesktopMacOS,
146- meta: _isDesktopMacOS,
147- ): const QuillEditorInsertEmbedIntent (Attribute .image),
148-
149- SingleActivator (
150- LogicalKeyboardKey .keyF,
151- control: ! _isDesktopMacOS,
152- meta: _isDesktopMacOS,
153- ): const OpenSearchIntent (),
124+ if (shortCutConfig.enableH1)
125+ SingleActivator (
126+ LogicalKeyboardKey .digit1,
127+ control: ! _isDesktopMacOS,
128+ meta: _isDesktopMacOS,
129+ ): const QuillEditorApplyHeaderIntent (Attribute .h1),
130+ if (shortCutConfig.enableH2)
131+ SingleActivator (
132+ LogicalKeyboardKey .digit2,
133+ control: ! _isDesktopMacOS,
134+ meta: _isDesktopMacOS,
135+ ): const QuillEditorApplyHeaderIntent (Attribute .h2),
136+ if (shortCutConfig.enableH3)
137+ SingleActivator (
138+ LogicalKeyboardKey .digit3,
139+ control: ! _isDesktopMacOS,
140+ meta: _isDesktopMacOS,
141+ ): const QuillEditorApplyHeaderIntent (Attribute .h3),
142+ if (shortCutConfig.enableH4)
143+ SingleActivator (
144+ LogicalKeyboardKey .digit4,
145+ control: ! _isDesktopMacOS,
146+ meta: _isDesktopMacOS,
147+ ): const QuillEditorApplyHeaderIntent (Attribute .h4),
148+ if (shortCutConfig.enableH5)
149+ SingleActivator (
150+ LogicalKeyboardKey .digit5,
151+ control: ! _isDesktopMacOS,
152+ meta: _isDesktopMacOS,
153+ ): const QuillEditorApplyHeaderIntent (Attribute .h5),
154+ if (shortCutConfig.enableH6)
155+ SingleActivator (
156+ LogicalKeyboardKey .digit6,
157+ control: ! _isDesktopMacOS,
158+ meta: _isDesktopMacOS,
159+ ): const QuillEditorApplyHeaderIntent (Attribute .h6),
160+ if (shortCutConfig.enableH1)
161+ SingleActivator (
162+ LogicalKeyboardKey .digit0,
163+ control: ! _isDesktopMacOS,
164+ meta: _isDesktopMacOS,
165+ ): const QuillEditorApplyHeaderIntent (Attribute .header),
166+ if (shortCutConfig.enableImage)
167+ SingleActivator (
168+ LogicalKeyboardKey .keyG,
169+ control: ! _isDesktopMacOS,
170+ meta: _isDesktopMacOS,
171+ ): const QuillEditorInsertEmbedIntent (Attribute .image),
172+ if (shortCutConfig.enableSearch)
173+ SingleActivator (
174+ LogicalKeyboardKey .keyF,
175+ control: ! _isDesktopMacOS,
176+ meta: _isDesktopMacOS,
177+ ): const OpenSearchIntent (),
154178
155179 // Arrow key scrolling
156- SingleActivator (
157- LogicalKeyboardKey .arrowUp,
158- control: ! _isDesktopMacOS,
159- meta: _isDesktopMacOS,
160- ): const ScrollIntent (direction: AxisDirection .up),
161- SingleActivator (
162- LogicalKeyboardKey .arrowDown,
163- control: ! _isDesktopMacOS,
164- meta: _isDesktopMacOS,
165- ): const ScrollIntent (direction: AxisDirection .down),
166- SingleActivator (
167- LogicalKeyboardKey .pageUp,
168- control: ! _isDesktopMacOS,
169- meta: _isDesktopMacOS,
170- ): const ScrollIntent (
171- direction: AxisDirection .up, type: ScrollIncrementType .page),
172- SingleActivator (
173- LogicalKeyboardKey .pageDown,
174- control: ! _isDesktopMacOS,
175- meta: _isDesktopMacOS,
176- ): const ScrollIntent (
177- direction: AxisDirection .down, type: ScrollIncrementType .page),
180+ if (shortCutConfig.enableArrowScrolling) ...{
181+ SingleActivator (
182+ LogicalKeyboardKey .arrowUp,
183+ control: ! _isDesktopMacOS,
184+ meta: _isDesktopMacOS,
185+ ): const ScrollIntent (direction: AxisDirection .up),
186+ SingleActivator (
187+ LogicalKeyboardKey .arrowDown,
188+ control: ! _isDesktopMacOS,
189+ meta: _isDesktopMacOS,
190+ ): const ScrollIntent (direction: AxisDirection .down),
191+ SingleActivator (
192+ LogicalKeyboardKey .pageUp,
193+ control: ! _isDesktopMacOS,
194+ meta: _isDesktopMacOS,
195+ ): const ScrollIntent (
196+ direction: AxisDirection .up, type: ScrollIncrementType .page),
197+ SingleActivator (
198+ LogicalKeyboardKey .pageDown,
199+ control: ! _isDesktopMacOS,
200+ meta: _isDesktopMacOS,
201+ ): const ScrollIntent (
202+ direction: AxisDirection .down, type: ScrollIncrementType .page),
203+ },
178204 };
179205}
0 commit comments