From 7e997af9b8391e7189b9eac023cbdea60ff758d6 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Mon, 4 Feb 2013 17:24:00 -0500 Subject: [PATCH 1/4] Hide midpoints when vertices hidden --- js/id/svg/midpoints.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js/id/svg/midpoints.js b/js/id/svg/midpoints.js index 935f84719..c59ef0bca 100644 --- a/js/id/svg/midpoints.js +++ b/js/id/svg/midpoints.js @@ -2,6 +2,10 @@ iD.svg.Midpoints = function(projection) { return function drawMidpoints(surface, graph, entities, filter) { var midpoints = {}; + if (!surface.select('.layer-hit').select('g.vertex').node()) { + return surface.select('.layer-hit').selectAll('g.midpoint').remove(); + } + for (var i = 0; i < entities.length; i++) { if (entities[i].type !== 'way') continue; From d5937907a45f7c405a072e96ff5e39eb9c2b71e4 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Mon, 4 Feb 2013 17:39:16 -0500 Subject: [PATCH 2/4] Hide midpoints without breaking drawing I always forget d3 works this way. --- js/id/svg/midpoints.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/id/svg/midpoints.js b/js/id/svg/midpoints.js index c59ef0bca..96048b1ed 100644 --- a/js/id/svg/midpoints.js +++ b/js/id/svg/midpoints.js @@ -2,8 +2,8 @@ iD.svg.Midpoints = function(projection) { return function drawMidpoints(surface, graph, entities, filter) { var midpoints = {}; - if (!surface.select('.layer-hit').select('g.vertex').node()) { - return surface.select('.layer-hit').selectAll('g.midpoint').remove(); + if (!surface.select('.layer-hit.g.vertex').node()) { + return surface.select('.layer-hit.g.midpoint').remove(); } for (var i = 0; i < entities.length; i++) { From c8ab057f19b58e724fba124360c4d05840a28726 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Mon, 4 Feb 2013 18:26:45 -0500 Subject: [PATCH 3/4] Remove unused midpoint code --- js/id/behavior/add_way.js | 3 +-- js/id/behavior/draw.js | 5 +---- js/id/behavior/draw_way.js | 14 -------------- js/id/modes/add_area.js | 15 --------------- js/id/modes/add_line.js | 14 -------------- js/id/modes/add_point.js | 1 - 6 files changed, 2 insertions(+), 50 deletions(-) diff --git a/js/id/behavior/add_way.js b/js/id/behavior/add_way.js index 207c88566..782d7f183 100644 --- a/js/id/behavior/add_way.js +++ b/js/id/behavior/add_way.js @@ -1,12 +1,11 @@ iD.behavior.AddWay = function(context) { - var event = d3.dispatch('start', 'startFromWay', 'startFromNode', 'startFromMidpoint'), + var event = d3.dispatch('start', 'startFromWay', 'startFromNode') draw = iD.behavior.Draw(context); var addWay = function(surface) { draw.on('click', event.start) .on('clickWay', event.startFromWay) .on('clickNode', event.startFromNode) - .on('clickMidpoint', event.startFromMidpoint) .on('cancel', addWay.cancel) .on('finish', addWay.cancel); diff --git a/js/id/behavior/draw.js b/js/id/behavior/draw.js index eb207eeb5..656eb7988 100644 --- a/js/id/behavior/draw.js +++ b/js/id/behavior/draw.js @@ -1,5 +1,5 @@ iD.behavior.Draw = function(context) { - var event = d3.dispatch('move', 'click', 'clickWay', 'clickNode', 'clickMidpoint', 'undo', 'cancel', 'finish'), + var event = d3.dispatch('move', 'click', 'clickWay', 'clickNode', 'undo', 'cancel', 'finish'), keybinding = d3.keybinding('draw'), hover = iD.behavior.Hover(); @@ -34,9 +34,6 @@ iD.behavior.Draw = function(context) { } else if (d.type === 'node') { event.clickNode(d); - } else if (d.type === 'midpoint') { - event.clickMidpoint(d); - } else { event.click(context.map().mouseCoordinates()); } diff --git a/js/id/behavior/draw_way.js b/js/id/behavior/draw_way.js index fa2c24c87..6b648db0e 100644 --- a/js/id/behavior/draw_way.js +++ b/js/id/behavior/draw_way.js @@ -46,7 +46,6 @@ iD.behavior.DrawWay = function(context, wayId, index, mode, baseGraph) { .on('click', drawWay.add) .on('clickWay', drawWay.addWay) .on('clickNode', drawWay.addNode) - .on('clickMidpoint', drawWay.addMidpoint) .on('undo', context.undo) .on('cancel', drawWay.cancel) .on('finish', drawWay.finish); @@ -140,19 +139,6 @@ iD.behavior.DrawWay = function(context, wayId, index, mode, baseGraph) { context.enter(mode); }; - // Add a midpoint, connect the way to it, and continue drawing. - drawWay.addMidpoint = function(midpoint) { - var node = iD.Node(); - - context.perform( - iD.actions.AddMidpoint(midpoint, node), - ReplaceTemporaryNode(node), - annotation); - - finished = true; - context.enter(mode); - }; - // Finish the draw operation, removing the temporary node. If the way has enough // nodes to be valid, it's selected. Otherwise, return to browse mode. drawWay.finish = function() { diff --git a/js/id/modes/add_area.js b/js/id/modes/add_area.js index 0a9496bb6..ae83423cb 100644 --- a/js/id/modes/add_area.js +++ b/js/id/modes/add_area.js @@ -11,7 +11,6 @@ iD.modes.AddArea = function(context) { .on('start', start) .on('startFromWay', startFromWay) .on('startFromNode', startFromNode) - .on('startFromMidpoint', startFromMidpoint), defaultTags = {area: 'yes'}; function start(loc) { @@ -55,20 +54,6 @@ iD.modes.AddArea = function(context) { context.enter(iD.modes.DrawArea(context, way.id, graph)); } - function startFromMidpoint(midpoint) { - var graph = context.graph(), - node = iD.Node(), - way = iD.Way({tags: defaultTags}); - - context.perform( - iD.actions.AddMidpoint(midpoint, node), - iD.actions.AddEntity(way), - iD.actions.AddVertex(way.id, node.id), - iD.actions.AddVertex(way.id, node.id)); - - context.enter(iD.modes.DrawArea(context, way.id, graph)); - } - mode.enter = function() { context.install(behavior); context.tail(t('modes.add_area.tail')); diff --git a/js/id/modes/add_line.js b/js/id/modes/add_line.js index 7845e6e6f..3d45df2a0 100644 --- a/js/id/modes/add_line.js +++ b/js/id/modes/add_line.js @@ -11,7 +11,6 @@ iD.modes.AddLine = function(context) { .on('start', start) .on('startFromWay', startFromWay) .on('startFromNode', startFromNode) - .on('startFromMidpoint', startFromMidpoint), defaultTags = {highway: 'residential'}; function start(loc) { @@ -63,19 +62,6 @@ iD.modes.AddLine = function(context) { } } - function startFromMidpoint(midpoint) { - var graph = context.graph(), - node = iD.Node(), - way = iD.Way({tags: defaultTags}); - - context.perform( - iD.actions.AddMidpoint(midpoint, node), - iD.actions.AddEntity(way), - iD.actions.AddVertex(way.id, node.id)); - - context.enter(iD.modes.DrawLine(context, way.id, 'forward', graph)); - } - mode.enter = function() { context.install(behavior); context.tail(t('modes.add_line.tail')); diff --git a/js/id/modes/add_point.js b/js/id/modes/add_point.js index 5a24dad25..457ed87a4 100644 --- a/js/id/modes/add_point.js +++ b/js/id/modes/add_point.js @@ -10,7 +10,6 @@ iD.modes.AddPoint = function(context) { .on('click', add) .on('clickWay', addWay) .on('clickNode', addNode) - .on('clickMidpoint', addNode) .on('cancel', cancel) .on('finish', cancel); From ab7c1fa80aa41cee16ef29daed005c6b8171ff0f Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Mon, 4 Feb 2013 18:32:16 -0500 Subject: [PATCH 4/4] Fix midpoint hiding. really --- js/id/svg/midpoints.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/id/svg/midpoints.js b/js/id/svg/midpoints.js index 96048b1ed..1db622612 100644 --- a/js/id/svg/midpoints.js +++ b/js/id/svg/midpoints.js @@ -2,8 +2,8 @@ iD.svg.Midpoints = function(projection) { return function drawMidpoints(surface, graph, entities, filter) { var midpoints = {}; - if (!surface.select('.layer-hit.g.vertex').node()) { - return surface.select('.layer-hit.g.midpoint').remove(); + if (!surface.select('.layer-hit g.vertex').node()) { + return surface.selectAll('.layer-hit g.midpoint').remove(); } for (var i = 0; i < entities.length; i++) {