Skip to content

Commit 1614d0d

Browse files
author
Jonathan Weber
committed
fix: applying shortcutConfigurations
1 parent afe8a99 commit 1614d0d

File tree

4 files changed

+189
-156
lines changed

4 files changed

+189
-156
lines changed

lib/src/editor/config/quill_shortcut_configuration.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class QuillShortcutConfiguration {
2424
this.enableHeaderReset = true,
2525
this.enableImage = true,
2626
this.enableSearch = true,
27+
this.enableArrowScrolling = true,
2728
});
2829

2930
const QuillShortcutConfiguration.disabled() : this.only();
@@ -53,6 +54,7 @@ class QuillShortcutConfiguration {
5354
bool enableHeaderReset = false,
5455
bool enableImage = false,
5556
bool enableSearch = false,
57+
bool enableArrowScrolling = false,
5658
}) : this(
5759
enableHideSelectionToolbar: enableHideSelectionToolbar,
5860
enableUndo: enableUndo,
@@ -78,6 +80,7 @@ class QuillShortcutConfiguration {
7880
enableHeaderReset: enableHeaderReset,
7981
enableImage: enableImage,
8082
enableSearch: enableSearch,
83+
enableArrowScrolling: enableArrowScrolling,
8184
);
8285

8386
final bool enableHideSelectionToolbar;
@@ -104,4 +107,5 @@ class QuillShortcutConfiguration {
104107
final bool enableHeaderReset;
105108
final bool enableImage;
106109
final bool enableSearch;
110+
final bool enableArrowScrolling;
107111
}

lib/src/editor/raw_editor/keyboard_shortcuts/default_single_activator_intents.dart

Lines changed: 181 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -9,171 +9,197 @@ import 'editor_keyboard_shortcut_actions.dart';
99
final _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

Comments
 (0)