Skip to content

Commit 6531f9c

Browse files
committed
feat: add keyboard shortcuts to change paint brush size
[ and ] decrease and increase brush size.
1 parent a61a3dc commit 6531f9c

4 files changed

Lines changed: 20 additions & 4 deletions

File tree

src/components/tools/paint/PaintWidget2D.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ export default defineComponent({
174174
// Brush size scroll wheel control with customizable modifier key
175175
const keys = useMagicKeys();
176176
const enableBrushSizeAdjustment = computed(
177-
() => keys[actionToKey.value.brushSize].value
177+
() => keys[actionToKey.value.brushSizeModifier].value
178178
);
179179
180180
const handleWheelEvent = (event: WheelEvent) => {

src/composables/actions.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,22 @@ const deleteCurrentImage = () => () => {
6868
}
6969
};
7070

71+
const changeBrushSize = (delta: number) => () => {
72+
const paintStore = usePaintToolStore();
73+
const newSize = Math.max(1, paintStore.brushSize + delta);
74+
paintStore.setBrushSize(newSize);
75+
};
76+
7177
export const ACTION_TO_FUNC = {
7278
windowLevel: setTool(Tools.WindowLevel),
7379
pan: setTool(Tools.Pan),
7480
zoom: setTool(Tools.Zoom),
7581
ruler: setTool(Tools.Ruler),
7682
paint: startPaintInMode(PaintMode.CirclePaint),
7783
paintEraser: startPaintInMode(PaintMode.Erase),
78-
brushSize: NOOP, // act as modifier key rather than immediate effect, so no-op
84+
brushSizeModifier: NOOP, // act as modifier key rather than immediate effect, so no-op
85+
decreaseBrushSize: changeBrushSize(-1),
86+
increaseBrushSize: changeBrushSize(1),
7987
rectangle: setTool(Tools.Rectangle),
8088
crosshairs: setTool(Tools.Crosshairs),
8189
temporaryCrosshairs: NOOP, // behavior implemented elsewhere

src/config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,9 @@ export const ACTION_TO_KEY = {
209209
ruler: 'm',
210210
paint: 'p',
211211
paintEraser: 'e',
212-
brushSize: 'ctrl',
212+
brushSizeModifier: 'ctrl',
213+
decreaseBrushSize: '[',
214+
increaseBrushSize: ']',
213215
rectangle: 'r',
214216
crosshairs: 'c',
215217
temporaryCrosshairs: 'shift-c',

src/constants.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,15 @@ export const ACTIONS = {
4343
paintEraser: {
4444
readable: 'Activate Paint tool with eraser',
4545
},
46-
brushSize: {
46+
brushSizeModifier: {
4747
readable: 'Change brush size by holding key and scrolling',
4848
},
49+
decreaseBrushSize: {
50+
readable: 'Decrease brush size',
51+
},
52+
increaseBrushSize: {
53+
readable: 'Increase brush size',
54+
},
4955
rectangle: {
5056
readable: 'Activate Rectangle tool',
5157
},

0 commit comments

Comments
 (0)