mirror of
https://github.com/google/blockly.git
synced 2026-01-07 00:50:27 +01:00
feat: add ability to delete workspace comments (#8023)
This commit is contained in:
@@ -18,10 +18,16 @@ import {CommentDragStrategy} from '../dragging/comment_drag_strategy.js';
|
||||
import * as browserEvents from '../browser_events.js';
|
||||
import * as common from '../common.js';
|
||||
import {ISelectable} from '../interfaces/i_selectable.js';
|
||||
import {IDeletable} from '../interfaces/i_deletable.js';
|
||||
|
||||
export class RenderedWorkspaceComment
|
||||
extends WorkspaceComment
|
||||
implements IBoundedElement, IRenderedElement, IDraggable, ISelectable
|
||||
implements
|
||||
IBoundedElement,
|
||||
IRenderedElement,
|
||||
IDraggable,
|
||||
ISelectable,
|
||||
IDeletable
|
||||
{
|
||||
/** The class encompassing the svg elements making up the workspace comment. */
|
||||
private view: CommentView;
|
||||
@@ -165,6 +171,20 @@ export class RenderedWorkspaceComment
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns whether this comment is deletable or not. */
|
||||
isDeletable(): boolean {
|
||||
return !this.workspace.options.readOnly;
|
||||
}
|
||||
|
||||
/** Visually indicates that this comment would be deleted if dropped. */
|
||||
setDeleteStyle(wouldDelete: boolean): void {
|
||||
if (wouldDelete) {
|
||||
dom.addClass(this.getSvgRoot(), 'blocklyDraggingDelete');
|
||||
} else {
|
||||
dom.removeClass(this.getSvgRoot(), 'blocklyDraggingDelete');
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns whether this comment is movable or not. */
|
||||
isMovable(): boolean {
|
||||
return this.dragStrategy.isMovable();
|
||||
|
||||
@@ -16,6 +16,7 @@ import {KeyboardShortcut, ShortcutRegistry} from './shortcut_registry.js';
|
||||
import {KeyCodes} from './utils/keycodes.js';
|
||||
import type {WorkspaceSvg} from './workspace_svg.js';
|
||||
import {isDraggable} from './interfaces/i_draggable.js';
|
||||
import * as eventUtils from './events/utils.js';
|
||||
|
||||
/**
|
||||
* Object holding the names of the default shortcut items.
|
||||
@@ -75,7 +76,14 @@ export function registerDelete() {
|
||||
if (Gesture.inProgress()) {
|
||||
return false;
|
||||
}
|
||||
(common.getSelected() as BlockSvg).checkAndDelete();
|
||||
const selected = common.getSelected();
|
||||
if (selected instanceof BlockSvg) {
|
||||
selected.checkAndDelete();
|
||||
} else if (isDeletable(selected) && selected.isDeletable()) {
|
||||
eventUtils.setGroup(true);
|
||||
selected.dispose();
|
||||
eventUtils.setGroup(false);
|
||||
}
|
||||
return true;
|
||||
},
|
||||
keyCodes: [KeyCodes.DELETE, KeyCodes.BACKSPACE],
|
||||
|
||||
Reference in New Issue
Block a user