Ticket #19197: 19197.patch

File 19197.patch, 2.6 KB (added by taylor.smock, 6 years ago)

Probably needs some work around NamedColorProperty

  • src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java

     
    2020import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
    2121import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
    2222import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
     23import org.openstreetmap.josm.data.preferences.NamedColorProperty;
    2324import org.openstreetmap.josm.gui.MainApplication;
    2425import org.openstreetmap.josm.gui.NavigatableComponent;
    2526import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    603604     * as frequent preference lookup (using <code>Config.getPref().get()</code>) for
    604605     * each primitive can be slow during rendering.
    605606     *
     607     * @param source style source
    606608     * @param key preference key
    607609     * @param def default value
    608610     * @return the corresponding preference value
    609611     * @see org.openstreetmap.josm.data.Preferences#get(String, String)
    610612     */
    611     public String getPreferenceCached(String key, String def) {
     613    public String getPreferenceCached(StyleSource source, String key, String def) {
    612614        String res;
    613615        if (preferenceCache.containsKey(key)) {
    614616            res = preferenceCache.get(key);
    615617        } else {
    616             res = Config.getPref().get(key, null);
     618            Object realDef = Cascade.convertTo(def, Color.class);
     619            if (realDef instanceof Color) {
     620                res = "#" + Integer.toHexString(new NamedColorProperty(NamedColorProperty.COLOR_CATEGORY_MAPPAINT, source.getFileNamePart(), key, (Color) realDef).get().getRGB()).substring(2);
     621            } else {
     622                res = Config.getPref().get(key, null);
     623            }
    617624            preferenceCache.put(key, res);
    618625        }
    619626        return res != null ? res : def;
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java

     
    776776     * @return value for key, or default value if not found
    777777     */
    778778    public static String JOSM_pref(Environment env, String key, String def) { // NO_UCD (unused code)
    779         return MapPaintStyles.getStyles().getPreferenceCached(key, def);
     779        return MapPaintStyles.getStyles().getPreferenceCached(env.source, key, def);
    780780    }
    781781
    782782    /**