Changeset 15958 in josm for trunk/src/org


Ignore:
Timestamp:
2020-02-29T00:28:12+01:00 (5 years ago)
Author:
Don-vip
Message:

fix #18806 - see #18381 - fix tagging presets menu initialization (patch by taylor.smock)

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/MainMenu.java

    r15655 r15958  
    129129import org.openstreetmap.josm.gui.mappaint.MapPaintMenu;
    130130import org.openstreetmap.josm.gui.preferences.imagery.ImageryPreference;
    131 import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    132131import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSearchPrimitiveDialog;
    133132import org.openstreetmap.josm.spi.preferences.Config;
     
    839838        ExpertToggleAction.getInstance().addButtonModel(expertItem.getModel());
    840839
    841         add(presetsMenu, presetSearchAction);
    842         add(presetsMenu, presetSearchPrimitiveAction);
    843         add(presetsMenu, PreferencesAction.forPreferenceSubTab(tr("Preset preferences"),
    844                 tr("Click to open the tagging presets tab in the preferences"), TaggingPresetPreference.class));
    845         presetsMenu.addSeparator();
    846 
    847840        add(imageryMenu, reorderImageryLayersAction);
    848841        add(imageryMenu, PreferencesAction.forPreferenceTab(tr("Imagery preferences..."),
  • trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresets.java

    r15582 r15958  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.gui.tagging.presets;
     3
     4import static org.openstreetmap.josm.tools.I18n.tr;
    35
    46import java.util.ArrayList;
     
    1416import javax.swing.JSeparator;
    1517
     18import org.openstreetmap.josm.actions.PreferencesAction;
    1619import org.openstreetmap.josm.data.osm.IPrimitive;
    1720import org.openstreetmap.josm.gui.MainApplication;
     21import org.openstreetmap.josm.gui.MainMenu;
    1822import org.openstreetmap.josm.gui.MenuScroller;
    1923import org.openstreetmap.josm.gui.preferences.ToolbarPreferences;
     24import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference;
    2025import org.openstreetmap.josm.gui.tagging.presets.items.CheckGroup;
    2126import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
     
    6166     */
    6267    public static void initialize() {
     68        MainMenu mainMenu = MainApplication.getMenu();
     69        JMenu presetsMenu = mainMenu.presetsMenu;
     70        if (presetsMenu.getComponentCount() == 0) {
     71            MainMenu.add(presetsMenu, mainMenu.presetSearchAction);
     72            MainMenu.add(presetsMenu, mainMenu.presetSearchPrimitiveAction);
     73            MainMenu.add(presetsMenu, PreferencesAction.forPreferenceSubTab(tr("Preset preferences"),
     74                    tr("Click to open the tagging presets tab in the preferences"), TaggingPresetPreference.class));
     75            presetsMenu.addSeparator();
     76        }
     77
    6378        readFromPreferences();
    6479        for (TaggingPreset tp: taggingPresets) {
     
    6883        }
    6984        if (taggingPresets.isEmpty()) {
    70             MainApplication.getMenu().presetsMenu.setVisible(false);
     85            presetsMenu.setVisible(false);
    7186        } else {
    7287            Map<TaggingPresetMenu, JMenu> submenus = new HashMap<>();
    7388            for (final TaggingPreset p : taggingPresets) {
    74                 JMenu m = p.group != null ? submenus.get(p.group) : MainApplication.getMenu().presetsMenu;
     89                JMenu m = p.group != null ? submenus.get(p.group) : presetsMenu;
    7590                if (m == null && p.group != null) {
    7691                    Logging.error("No tagging preset submenu for " + p.group);
     
    98113        }
    99114        if (Config.getPref().getBoolean("taggingpreset.sortmenu")) {
    100             TaggingPresetMenu.sortMenu(MainApplication.getMenu().presetsMenu);
     115            TaggingPresetMenu.sortMenu(presetsMenu);
    101116        }
    102117        listeners.forEach(TaggingPresetListener::taggingPresetsModified);
Note: See TracChangeset for help on using the changeset viewer.