deleteSelection method

void deleteSelection({
  1. int? timestampMs,
})

Implementation

void deleteSelection({int? timestampMs}) {
  final deletedIds = <NodeId>[];
  _core.write<void>((writer) {
    final selected = writer.selectedNodeIds.toSet();
    if (selected.isEmpty) return;
    for (final layer in writer.scene.layers) {
      for (final node in layer.nodes) {
        if (!selected.contains(node.id)) continue;
        if (!isNodeDeletableInLayer(node, layer)) continue;
        deletedIds.add(node.id);
      }
    }
    if (deletedIds.isEmpty) return;
    writer.writeDeleteSelection();
  });

  if (deletedIds.isNotEmpty) {
    _events.emitAction(
      ActionType.delete,
      deletedIds,
      _resolveTimestampMs(timestampMs),
    );
  }
}