Mercurial > hg > digilib
changeset 1345:01b7c2a38424
delete selected shapes with Del key
author | hertzhaft |
---|---|
date | Tue, 03 Feb 2015 12:51:59 +0100 |
parents | 3ec94ec07930 |
children | 7c6292ae8725 |
files | webapp/src/main/webapp/jquery/jquery.digilib.measure.js |
diffstat | 1 files changed, 33 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Tue Feb 03 11:45:39 2015 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.measure.js Tue Feb 03 12:51:59 2015 +0100 @@ -1054,9 +1054,40 @@ return false; }; - // keydown handler when measure bar is visible + // remove selected shapes or last, if none was selected + var removeSelectedShapes = function(data) { + var layers = data.vectorLayers; + if (layers == null) return; + var layer = layers[0]; + var shapes = layer.shapes; + if (shapes == null) return; + var shapesDeleted = 0; + for (var c = shapes.length; c > 0; --c) { + var index = c-1; + if (shapes[index].properties.selected) { + shapesDeleted++; + shapes.splice(index, 1); + } + } + if (shapesDeleted === 0 && shapes.length > 0) { + shapes.pop(); + shapesDeleted++; + }; + layer.renderFn(data, layer); + console.debug('measure: shapes deleted:', shapesDeleted); + }; + + // keydown handler (active when measure bar is visible) var onKeyDown = function(event, data) { - console.debug('measure: keyDown', event.key) + // delete selected shapes + if (event.keyCode === 46 || event.key === 'Del') { + removeSelectedShapes(data); + return false; + } + // shiftPressed=event.shiftKey; + // altPressed =event.altKey; + // ctrlPressed =event.ctrlKey; + console.debug('measure: keyDown', event.keyCode, event.key) }; // setup a div for accessing the measure functionality