From 1a43992bd10758371afa88cd04773933d0faf02e Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Mon, 4 Mar 2013 15:47:50 -0500 Subject: [PATCH] add recent presets to defaults --- js/id/presets.js | 14 +++++++++++--- js/id/ui/preset_grid.js | 5 +++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/js/id/presets.js b/js/id/presets.js index 4c0861644..bb2a5565d 100644 --- a/js/id/presets.js +++ b/js/id/presets.js @@ -15,7 +15,8 @@ iD.presets = function(context) { }, all = iD.presets.Collection([iD.presets.Preset(other)]), defaults = { area: all, line: all, point: all, vertex: all }, - forms = {}; + forms = {}, + recent = iD.presets.Collection([]); all.load = function(d) { @@ -46,8 +47,15 @@ iD.presets = function(context) { } }; - all.defaults = function(entity) { - return defaults[entity.geometry(context.graph())]; + all.defaults = function(entity, n) { + var rec = recent.matchType(entity, context.graph()).collection.slice(0, 4), + def = defaults[entity.geometry(context.graph())].collection.slice(0, n - rec.length - 1); + return iD.presets.Collection(_.unique(rec.concat(def).concat(other))); + }; + + all.choose = function(preset) { + recent = iD.presets.Collection(_.unique([preset].concat(recent.collection))); + return all; }; diff --git a/js/id/ui/preset_grid.js b/js/id/ui/preset_grid.js index 37f77861b..530e802a7 100644 --- a/js/id/ui/preset_grid.js +++ b/js/id/ui/preset_grid.js @@ -21,7 +21,7 @@ iD.ui.PresetGrid = function(context) { var grid = selection.append('div') .attr('class', 'preset-grid fillD inspector-body ' + entity.geometry(context.graph())) - .call(drawGrid, context.presets().defaults(entity)); + .call(drawGrid, context.presets().defaults(entity, 12)); var search = searchwrap.append('input') .attr('class', 'preset-grid-search') @@ -48,7 +48,7 @@ iD.ui.PresetGrid = function(context) { message.text(t('inspector.results', {n: results.collection.length, search: value})); grid.call(drawGrid, results); } else { - grid.call(drawGrid, context.presets().defaults(entity)); + grid.call(drawGrid, context.presets().defaults(entity, 12)); } } }); @@ -69,6 +69,7 @@ iD.ui.PresetGrid = function(context) { // Preset } else { + context.presets().choose(d); event.choose(d); } }