Changeset 11706 in josm


Ignore:
Timestamp:
2017-03-09T08:55:03+01:00 (5 months ago)
Author:
stoecker
Message:

switch imagery.layers.default from url to ID and drop old entries

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java

    r11703 r11706  
    185185            Collections.sort(allDefaultLayers);
    186186            buildIdMap(allDefaultLayers, defaultLayerIds);
    187             updateEntriesFromDefaults();
     187            updateEntriesFromDefaults(!loadError);
    188188            buildIdMap(layers, layerIds);
    189189            if (!loadError && !defaultLayerIds.isEmpty()) {
     
    219219    /**
    220220     * Update user entries according to the list of default entries.
    221      */
    222     public void updateEntriesFromDefaults() {
     221     * @param dropold if <code>true</code> old entries should be removed
     222     * @since 11706
     223     */
     224    public void updateEntriesFromDefaults(boolean dropold) {
    223225        // add new default entries to the user selection
    224226        boolean changed = false;
    225         Collection<String> knownDefaults = Main.pref.getCollection("imagery.layers.default");
    226         Collection<String> newKnownDefaults = new TreeSet<>(knownDefaults);
     227        Collection<String> knownDefaults = new TreeSet<>(Main.pref.getCollection("imagery.layers.default"));
     228        Collection<String> newKnownDefaults = new TreeSet<>();
    227229        for (ImageryInfo def : defaultLayers) {
    228230            if (def.isDefaultEntry()) {
    229231                boolean isKnownDefault = false;
    230                 for (String url : knownDefaults) {
    231                     if (isSimilar(url, def.getUrl())) {
     232                for (String entry : knownDefaults) {
     233                    if (isSimilar(entry, def.getId())) {
    232234                        isKnownDefault = true;
     235                        newKnownDefaults.add(entry);
     236                        knownDefaults.remove(entry);
     237                        break;
     238                    } else if (isSimilar(entry, def.getUrl())) {
     239                        isKnownDefault = true;
     240                        newKnownDefaults.add(def.getId());
     241                        knownDefaults.remove(entry);
    233242                        break;
    234243                    }
     
    236245                boolean isInUserList = false;
    237246                if (!isKnownDefault) {
    238                     newKnownDefaults.add(def.getUrl());
     247                    if (def.getId() != null) {
     248                        newKnownDefaults.add(def.getId());
     249                    } else {
     250                        newKnownDefaults.add(def.getUrl());
     251                    }
    239252                    for (ImageryInfo i : layers) {
    240253                        if (isSimilar(def, i)) {
     
    249262                }
    250263            }
     264        }
     265        if (!dropold && !knownDefaults.isEmpty()) {
     266            newKnownDefaults.addAll(knownDefaults);
    251267        }
    252268        Main.pref.putCollection("imagery.layers.default", newKnownDefaults);
Note: See TracChangeset for help on using the changeset viewer.