Ticket #18381: 18381.patch
| File 18381.patch, 3.4 KB (added by , 6 years ago) |
|---|
-
src/org/openstreetmap/josm/gui/preferences/map/TaggingPresetPreference.java
31 31 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting; 32 32 import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting; 33 33 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetReader; 34 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets; 34 35 import org.openstreetmap.josm.spi.preferences.Config; 35 36 import org.openstreetmap.josm.tools.GBC; 36 37 import org.openstreetmap.josm.tools.Logging; … … 246 247 247 248 @Override 248 249 public boolean ok() { 249 boolean restart = Config.getPref().putBoolean("taggingpreset.sortmenu", sortMenu.getSelectedObjects() != null); 250 restart |= sources.finish(); 250 if (sources.finish() 251 || Config.getPref().putBoolean("taggingpreset.sortmenu", sortMenu.getSelectedObjects() != null)) { 252 TaggingPresets.destroy(); 253 TaggingPresets.initialize(); 254 } 251 255 252 return restart;256 return false; 253 257 } 254 258 255 259 @Override -
src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java
16 16 import org.openstreetmap.josm.data.osm.IPrimitive; 17 17 import org.openstreetmap.josm.gui.MainApplication; 18 18 import org.openstreetmap.josm.gui.MenuScroller; 19 import org.openstreetmap.josm.gui.preferences.ToolbarPreferences; 19 20 import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup; 20 21 import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem; 21 22 import org.openstreetmap.josm.gui.tagging.presets.items.Roles; … … 98 99 if (Config.getPref().getBoolean("taggingpreset.sortmenu")) { 99 100 TaggingPresetMenu.sortMenu(MainApplication.getMenu().presetsMenu); 100 101 } 102 listeners.forEach(TaggingPresetListener::taggingPresetsModified); 101 103 } 102 104 105 // Cannot implement Destroyable since this is static 103 106 /** 107 * Call to deconstruct the TaggingPresets menus and other information so that it 108 * can be rebuilt later. 109 * 110 * @since xxx 111 */ 112 public static void destroy() { 113 ToolbarPreferences toolBar = MainApplication.getToolbar(); 114 taggingPresets.forEach(toolBar::unregister); 115 taggingPresets.clear(); 116 PRESET_TAG_CACHE.clear(); 117 PRESET_ROLE_CACHE.clear(); 118 MainApplication.getMenu().presetsMenu.removeAll(); 119 listeners.forEach(TaggingPresetListener::taggingPresetsModified); 120 } 121 122 /** 104 123 * Initialize the cache for presets. This is done only once. 105 124 * @param presets Tagging presets to cache 106 125 */ … … 201 220 */ 202 221 public static void addTaggingPresets(Collection<TaggingPreset> presets) { 203 222 if (presets != null && taggingPresets.addAll(presets)) { 204 for (TaggingPresetListener listener : listeners) { 205 listener.taggingPresetsModified(); 206 } 223 listeners.forEach(TaggingPresetListener::taggingPresetsModified); 207 224 } 208 225 } 209 226
