Changeset 16096 in josm for trunk/src


Ignore:
Timestamp:
2020-03-08T21:33:06+01:00 (4 years ago)
Author:
Don-vip
Message:

fix #18649 - imagery menu: Do not create category submenu with only one entry

File:
1 edited

Legend:

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

    r15521 r16096  
    163163        removeDynamicItems();
    164164
    165         addDynamic(offsetMenuItem, null);
     165        addDynamic(offsetMenuItem);
    166166        addDynamicSeparator();
    167167
     
    195195                for (Entry<ImageryCategory, List<JMenuItem>> e : dynamicNonPhotoItems.entrySet()) {
    196196                    ImageryCategory cat = e.getKey();
    197                     JMenuItem categoryMenu = new JMenu(cat.getDescription());
    198                     categoryMenu.setIcon(cat.getIcon(ImageSizes.MENU));
    199                     for (JMenuItem it : e.getValue()) {
    200                         categoryMenu.add(it);
     197                    List<JMenuItem> list = e.getValue();
     198                    if (list.size() > 1) {
     199                        JMenuItem categoryMenu = new JMenu(cat.getDescription());
     200                        categoryMenu.setIcon(cat.getIcon(ImageSizes.MENU));
     201                        for (JMenuItem it : list) {
     202                            categoryMenu.add(it);
     203                        }
     204                        dynamicNonPhotoMenus.add(add(categoryMenu));
     205                    } else if (!list.isEmpty()) {
     206                        dynamicNonPhotoMenus.add(add(list.get(0)));
    201207                    }
    202                     dynamicNonPhotoMenus.add(add(categoryMenu));
    203208                }
    204209            }
     
    216221        } else {
    217222            // or add the submenu itself
    218             addDynamic(subMenu, null);
     223            addDynamic(subMenu);
    219224        }
    220225    }
     
    322327    }
    323328
    324     private void addDynamic(JMenuItem it, ImageryCategory category) {
    325         doAddDynamic(it, category);
     329    private void addDynamic(JMenuItem it) {
     330        doAddDynamic(it, null);
    326331    }
    327332
Note: See TracChangeset for help on using the changeset viewer.