From f222f91f919739030f1a75aa47eefaff290f2449 Mon Sep 17 00:00:00 2001 From: ivmartel Date: Mon, 10 Feb 2025 12:56:26 +0100 Subject: [PATCH] Add removelayer event --- src/app/application.js | 1 + src/gui/layerGroup.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/app/application.js b/src/app/application.js index 3d4d87fc0b..bee122990d 100644 --- a/src/app/application.js +++ b/src/app/application.js @@ -1825,6 +1825,7 @@ export class App { // propagate layer group events group.addEventListener('zoomchange', this.#fireEvent); group.addEventListener('offsetchange', this.#fireEvent); + group.addEventListener('layerremove', this.#fireEvent); // propagate viewLayer events group.addEventListener('renderstart', this.#fireEvent); group.addEventListener('renderend', this.#fireEvent); diff --git a/src/gui/layerGroup.js b/src/gui/layerGroup.js index 6d5b4036ba..69debec2b3 100644 --- a/src/gui/layerGroup.js +++ b/src/gui/layerGroup.js @@ -841,6 +841,7 @@ export class LayerGroup { * methods to define the active index. * * @param {ViewLayer | DrawLayer} layer The layer to remove. + * @fires LayerGroup#removelayer */ removeLayer(layer) { // find layer @@ -864,6 +865,21 @@ export class LayerGroup { this.#positionHelper = undefined; // update html layer.removeFromDOM(); + + /** + * Remove layer event. + * + * @event LayerGroup#removelayer + * @type {object} + * @property {string} type The event type. + * @property {string} layerid The layer id. + * @property {string} layergroupid The layer group id. + */ + this.#fireEvent({ + type: 'layerremove', + layerid: layer.getId(), + layergroupid: this.getDivId() + }); } /**