diff --git a/css/80_app.css b/css/80_app.css index 592a12f19..2a871b75c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1165,18 +1165,15 @@ a.hide-toggle { background-color: #ececec; } -.preset-list-item button.preset-favorite-button, .preset-list-item button.tag-reference-button { height: 100%; width: 32px; flex: 0 0 auto; background: #f6f6f6; } -[dir='ltr'] .preset-list-item button.preset-favorite-button, [dir='ltr'] .preset-list-item button.tag-reference-button { border-left: 1px solid #ccc; } -[dir='rtl'] .preset-list-item button.preset-favorite-button, [dir='rtl'] .preset-list-item button.tag-reference-button { border-right: 1px solid #ccc; } @@ -1187,23 +1184,13 @@ a.hide-toggle { border-radius: 4px 0 0 4px; } -.preset-list-item button.preset-favorite-button:hover, .preset-list-item button.tag-reference-button:hover { background: #f1f1f1; } -.preset-list-item button.preset-favorite-button .icon, .preset-list-item button.tag-reference-button .icon { opacity: .5; } -button.preset-favorite-button .icon { - fill-opacity: 0; - stroke-width: 1; -} -button.preset-favorite-button.active .icon { - fill-opacity: inherit; -} - .current .preset-list-button, .current .preset-list-button .label { @@ -3724,7 +3711,6 @@ li.issue-fix-item:not(.actionable) .fix-icon { /* hide and remove from layout */ .inspector-hidden, -.inspector-hover .preset-list-button-wrap .preset-favorite-button, .inspector-hover .preset-list-button-wrap .tag-reference-button, .inspector-hover label input[type="checkbox"], .inspector-hover label input[type="radio"], diff --git a/data/core.yaml b/data/core.yaml index 14e4c06be..e1bd84f65 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1993,12 +1993,10 @@ en: title: "Editing" drawing: title: "Drawing" - focus_add_feature: "Focus the feature search field" add_point: "'Add point' mode" add_line: "'Add line' mode" add_area: "'Add area' mode" add_note: "'Add note' mode" - add_favorite: "Add a favorite feature" place_point: "Place a point or note" disable_snap: "Hold to disable point snapping" stop_line: "Finish drawing a line or area" diff --git a/data/shortcuts.json b/data/shortcuts.json index 7694073db..22a2a60f5 100644 --- a/data/shortcuts.json +++ b/data/shortcuts.json @@ -174,14 +174,16 @@ "text": "shortcuts.editing.drawing.title" }, { - "shortcuts": ["modes.add_feature.key"], - "text": "shortcuts.editing.drawing.focus_add_feature" + "shortcuts": ["1"], + "text": "shortcuts.editing.drawing.add_point" }, { - "shortcuts": ["1", "2", "3"], - "text": "shortcuts.editing.drawing.add_favorite", - "separator": ",", - "suffix": "…" + "shortcuts": ["2"], + "text": "shortcuts.editing.drawing.add_line" + }, + { + "shortcuts": ["3"], + "text": "shortcuts.editing.drawing.add_area" }, { "shortcuts": ["modes.add_note.key"], diff --git a/dist/locales/en.json b/dist/locales/en.json index f4abfe3d8..1a5434b96 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2453,12 +2453,10 @@ "title": "Editing", "drawing": { "title": "Drawing", - "focus_add_feature": "Focus the feature search field", "add_point": "'Add point' mode", "add_line": "'Add line' mode", "add_area": "'Add area' mode", "add_note": "'Add note' mode", - "add_favorite": "Add a favorite feature", "place_point": "Place a point or note", "disable_snap": "Hold to disable point snapping", "stop_line": "Finish drawing a line or area" diff --git a/modules/presets/index.js b/modules/presets/index.js index df6b8dc72..fd3124918 100644 --- a/modules/presets/index.js +++ b/modules/presets/index.js @@ -19,13 +19,13 @@ export function presetIndex(context) { // a presetCollection with methods for // loading new data and returning defaults - var dispatch = d3_dispatch('recentsChange', 'favoritePreset'); + var dispatch = d3_dispatch('recentsChange'); var all = presetCollection([]); var _defaults = { area: all, line: all, point: all, vertex: all, relation: all }; var _fields = {}; var _universal = []; - var _favorites, _recents; + var _recents; // presets that the user can add var _addablePresetIDs; @@ -254,7 +254,6 @@ export function presetIndex(context) { all.init = function(addablePresetIDs) { all.collection = []; - _favorites = null; _recents = null; _addablePresetIDs = addablePresetIDs; _fields = {}; @@ -277,7 +276,6 @@ export function presetIndex(context) { _defaults = { area: all, line: all, point: all, vertex: all, relation: all }; _fields = {}; _universal = []; - _favorites = null; _recents = null; // Index of presets by (geometry, tag key). @@ -336,9 +334,6 @@ export function presetIndex(context) { item.geometry = geometry; item.source = source; - item.isFavorite = function() { - return item.source === 'favorite'; - }; item.isRecent = function() { return item.source === 'recent'; }; @@ -372,32 +367,6 @@ export function presetIndex(context) { return null; } - function setFavorites(items) { - _favorites = items; - var minifiedItems = items.map(function(d) { return d.minified(); }); - context.storage('preset_favorites', JSON.stringify(minifiedItems)); - - // call update - dispatch.call('favoritePreset'); - } - - all.getFavorites = function() { - if (!_favorites) { - // fetch from local storage - _favorites = (JSON.parse(context.storage('preset_favorites')) || [ - // use the generic presets as the default favorites - { pID: 'point', geom: 'point'}, - { pID: 'line', geom: 'line'}, - { pID: 'area', geom: 'area'} - ]).reduce(function(output, d) { - var item = ribbonItemForMinified(d, 'favorite'); - if (item) output.push(item); - return output; - }, []); - } - return _favorites; - }; - function setRecents(items) { _recents = items; var minifiedItems = items.map(function(d) { return d.minified(); }); @@ -419,34 +388,6 @@ export function presetIndex(context) { return _recents; }; - all.toggleFavorite = function(preset, geometry) { - geometry = all.fallback(geometry).id; - var favs = all.getFavorites(); - var favorite = all.favoriteMatching(preset, geometry); - if (favorite) { - favs.splice(favs.indexOf(favorite), 1); - } else { - // only allow 10 favorites - if (favs.length === 10) { - // remove the last favorite (last in, first out) - favs.pop(); - } - // append array - favs.push(RibbonItem(preset, geometry, 'favorite')); - } - setFavorites(favs); - }; - - all.removeFavorite = function(preset, geometry) { - geometry = all.fallback(geometry).id; - var item = all.favoriteMatching(preset, geometry); - if (item) { - var items = all.getFavorites(); - items.splice(items.indexOf(item), 1); - setFavorites(items); - } - }; - all.removeRecent = function(preset, geometry) { var item = all.recentMatching(preset, geometry); if (item) { @@ -456,16 +397,6 @@ export function presetIndex(context) { } }; - all.favoriteMatching = function(preset, geometry) { - geometry = all.fallback(geometry).id; - var favs = all.getFavorites(); - for (var index in favs) { - if (favs[index].matches(preset, geometry)) { - return favs[index]; - } - } - return null; - }; all.recentMatching = function(preset, geometry) { geometry = all.fallback(geometry).id; var items = all.getRecents(); @@ -485,11 +416,6 @@ export function presetIndex(context) { return items; }; - all.moveFavorite = function(fromIndex, toIndex) { - var items = all.moveItem(all.getFavorites(), fromIndex, toIndex); - if (items) setFavorites(items); - }; - all.moveRecent = function(item, beforeItem) { var recents = all.getRecents(); var fromIndex = recents.indexOf(item); @@ -513,7 +439,7 @@ export function presetIndex(context) { } // allow 30 recents if (items.length === 30) { - // remove the last favorite (first in, first out) + // remove the last recent (first in, first out) items.pop(); } // prepend array diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index 876dc28b4..18d70ce02 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -7,7 +7,6 @@ import { tooltip } from '../util/tooltip'; import { actionChangeTags } from '../actions/change_tags'; import { modeBrowse } from '../modes/browse'; import { svgIcon } from '../svg/icon'; -import { uiPresetFavoriteButton } from './preset_favorite_button'; import { uiPresetIcon } from './preset_icon'; import { uiQuickLinks } from './quick_links'; import { uiRawMemberEditor } from './raw_member_editor'; @@ -30,7 +29,6 @@ export function uiEntityEditor(context) { var _entityID; var _activePreset; var _tagReference; - var _presetFavorite; var entityIssues = uiEntityIssues(context); var quickLinks = uiQuickLinks(); @@ -134,11 +132,6 @@ export function uiEntityEditor(context) { body = body .merge(bodyEnter); - if (_presetFavorite) { - body.selectAll('.preset-list-button-wrap') - .call(_presetFavorite.button); - } - // update header if (_tagReference) { body.selectAll('.preset-list-button-wrap') @@ -364,7 +357,6 @@ export function uiEntityEditor(context) { _tagReference = uiTagReference(_activePreset.reference(context.geometry(_entityID)), context) .showing(false); } - _presetFavorite = uiPresetFavoriteButton(_activePreset, context.geometry(_entityID), context); return entityEditor; }; diff --git a/modules/ui/preset_favorite_button.js b/modules/ui/preset_favorite_button.js deleted file mode 100644 index fa32c6b93..000000000 --- a/modules/ui/preset_favorite_button.js +++ /dev/null @@ -1,56 +0,0 @@ -import { - event as d3_event, - select as d3_select -} from 'd3-selection'; - -import { t } from '../util/locale'; -import { svgIcon } from '../svg/icon'; - -export function uiPresetFavoriteButton(preset, geom, context, klass) { - - geom = context.presets().fallback(geom).id; - - var presetFavorite = {}; - - var _button = d3_select(null); - - - presetFavorite.button = function(selection) { - // disable favoriting for now - var canFavorite = false;//geom !== 'relation' && preset.searchable !== false; - - _button = selection.selectAll('.preset-favorite-button') - .data(canFavorite ? [0] : []); - - _button.exit().remove(); - - _button = _button.enter() - .insert('button', '.tag-reference-button') - .attr('class', 'preset-favorite-button ' + klass) - .attr('title', t('icons.favorite')) - .attr('tabindex', -1) - .call(svgIcon('#iD-icon-favorite')) - .merge(_button); - - _button - .on('click', function () { - d3_event.stopPropagation(); - d3_event.preventDefault(); - - context.presets().toggleFavorite(preset, geom); - - update(); - }); - - update(); - }; - - function update() { - _button - .classed('active', context.presets().favoriteMatching(preset, geom)); - } - - context.presets().on('favoritePreset.button-' + preset.id.replace(/[^a-zA-Z\d:]/g, '-') + '-' + geom, update); - - return presetFavorite; -} diff --git a/modules/ui/top_toolbar.js b/modules/ui/top_toolbar.js index ce16fe658..5b35fac22 100644 --- a/modules/ui/top_toolbar.js +++ b/modules/ui/top_toolbar.js @@ -35,10 +35,6 @@ export function uiTopToolbar(context) { context.layers() .on('change.topToolbar', debouncedUpdate); - context.presets() - .on('favoritePreset.topToolbar', update) - .on('recentsChange.topToolbar', update); - update(); function update() {