add select all tool (#2981)

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
This commit is contained in:
Mani 2024-01-30 11:13:15 +05:30 committed by GitHub
parent 6aa51cc933
commit ec3698502b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 32 additions and 2 deletions

View file

@ -79,6 +79,7 @@ editing-image-occlusion-delete = Delete
editing-image-occlusion-duplicate = Duplicate editing-image-occlusion-duplicate = Duplicate
editing-image-occlusion-group = Group Selection editing-image-occlusion-group = Group Selection
editing-image-occlusion-ungroup = Ungroup Selection editing-image-occlusion-ungroup = Ungroup Selection
editing-image-occlusion-select-all = Select All
editing-image-occlusion-alignment = Alignment editing-image-occlusion-alignment = Alignment
editing-image-occlusion-align-left = Align Left editing-image-occlusion-align-left = Align Left
editing-image-occlusion-align-h-center = Align Horizontal Centers editing-image-occlusion-align-h-center = Align Horizontal Centers

View file

@ -29,6 +29,7 @@ export { default as mdiMagnifyScan } from "@mdi/svg/svg/magnify-scan.svg";
export { default as mdiRectangleOutline } from "@mdi/svg/svg/rectangle-outline.svg"; export { default as mdiRectangleOutline } from "@mdi/svg/svg/rectangle-outline.svg";
export { default as mdiRedo } from "@mdi/svg/svg/redo.svg"; export { default as mdiRedo } from "@mdi/svg/svg/redo.svg";
export { default as mdiRefresh } from "@mdi/svg/svg/refresh.svg"; export { default as mdiRefresh } from "@mdi/svg/svg/refresh.svg";
export { default as mdiSelectAll } from "@mdi/svg/svg/select-all.svg";
export { default as mdiSquare } from "@mdi/svg/svg/square.svg"; export { default as mdiSquare } from "@mdi/svg/svg/square.svg";
export { default as mdiTextBox } from "@mdi/svg/svg/text-box.svg"; export { default as mdiTextBox } from "@mdi/svg/svg/text-box.svg";
export { default as mdiUndo } from "@mdi/svg/svg/undo.svg"; export { default as mdiUndo } from "@mdi/svg/svg/undo.svg";

View file

@ -1,7 +1,7 @@
// Copyright: Ankitects Pty Ltd and contributors // Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import type fabric from "fabric"; import { fabric } from "fabric";
import type { PanZoom } from "panzoom"; import type { PanZoom } from "panzoom";
import { get } from "svelte/store"; import { get } from "svelte/store";
@ -316,3 +316,12 @@ export const makeShapeRemainInCanvas = (canvas: fabric.Canvas) => {
} }
}); });
}; };
export const selectAllShapes = (canvas: fabric.Canvas) => {
canvas.discardActiveObject();
const sel = new fabric.ActiveSelection(canvas.getObjects(), {
canvas: canvas,
});
canvas.setActiveObject(sel);
redraw(canvas);
};

View file

@ -13,12 +13,22 @@ import {
mdiCopy, mdiCopy,
mdiDeleteOutline, mdiDeleteOutline,
mdiGroup, mdiGroup,
mdiSelectAll,
mdiUngroup, mdiUngroup,
mdiZoomIn, mdiZoomIn,
mdiZoomOut, mdiZoomOut,
mdiZoomReset, mdiZoomReset,
} from "../icons"; } from "../icons";
import { deleteItem, duplicateItem, groupShapes, unGroupShapes, zoomIn, zoomOut, zoomReset } from "./lib"; import {
deleteItem,
duplicateItem,
groupShapes,
selectAllShapes,
unGroupShapes,
zoomIn,
zoomOut,
zoomReset,
} from "./lib";
import { import {
alignBottomKeyCombination, alignBottomKeyCombination,
alignHorizontalCenterKeyCombination, alignHorizontalCenterKeyCombination,
@ -29,6 +39,7 @@ import {
deleteKeyCombination, deleteKeyCombination,
duplicateKeyCombination, duplicateKeyCombination,
groupKeyCombination, groupKeyCombination,
selectAllKeyCombination,
ungroupKeyCombination, ungroupKeyCombination,
zoomInKeyCombination, zoomInKeyCombination,
zoomOutKeyCombination, zoomOutKeyCombination,
@ -58,6 +69,13 @@ export const groupUngroupTools = [
tooltip: tr.editingImageOcclusionUngroup, tooltip: tr.editingImageOcclusionUngroup,
shortcut: ungroupKeyCombination, shortcut: ungroupKeyCombination,
}, },
{
name: "select-all",
icon: mdiSelectAll,
action: selectAllShapes,
tooltip: tr.editingImageOcclusionSelectAll,
shortcut: selectAllKeyCombination,
},
]; ];
export const deleteDuplicateTools = [ export const deleteDuplicateTools = [

View file

@ -17,6 +17,7 @@ export const deleteKeyCombination = "Delete";
export const duplicateKeyCombination = "D"; export const duplicateKeyCombination = "D";
export const groupKeyCombination = "G"; export const groupKeyCombination = "G";
export const ungroupKeyCombination = "U"; export const ungroupKeyCombination = "U";
export const selectAllKeyCombination = "A";
export const alignLeftKeyCombination = "Shift+L"; export const alignLeftKeyCombination = "Shift+L";
export const alignHorizontalCenterKeyCombination = "Shift+H"; export const alignHorizontalCenterKeyCombination = "Shift+H";
export const alignRightKeyCombination = "Shift+R"; export const alignRightKeyCombination = "Shift+R";