# HG changeset patch # User hertzhaft # Date 1422964319 -3600 # Node ID 01b7c2a38424fde522040e08d7327bb7a5deab4b # Parent 3ec94ec079305ebe6cd827dba186789d54baaee8 delete selected shapes with Del key diff -r 3ec94ec07930 -r 01b7c2a38424 webapp/src/main/webapp/jquery/jquery.digilib.measure.js --- 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