From: Andreas Putzo <andreas@putzo.net>
Subject: User openstreetmap-map-icons-* packages
Last-Update: 2011-02-20
Forwarded: not-needed

Map icons in Debian are not distributed in Josm package, but in
the openstreetmap-map-icons-* packages, so they can be used also by other
applications. This patch points josm to the shared directories.

---
 src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java |   11 +++++++---
 src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java   |   13 ++++++++++--
 2 files changed, 19 insertions(+), 5 deletions(-)

--- josm.orig/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
+++ josm/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
@@ -144,14 +144,19 @@ public class MapPaintStyles {
         }
 
         if (Main.pref.getBoolean("mappaint.icon.enable-defaults", true)) {
-            /* don't prefix icon path, as it should be generic */
-            dirs.add("resource://images/styles/standard/");
-            dirs.add("resource://images/styles/");
+            addDebianDirs(dirs);
         }
 
         return dirs;
     }
 
+    public static void addDebianDirs(List<String> f) {
+        f.add("/usr/share/icons/openstreetmap/classic.small");
+        f.add("/usr/share/icons/openstreetmap/square.small");
+        f.add("/usr/share/icons/openstreetmap/classic.big");
+        f.add("/usr/share/icons/openstreetmap/square.big");
+    }
+
     public static void readFromPreferences() {
         styles.clear();
 
--- josm.orig/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
+++ josm/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
@@ -67,6 +67,7 @@ import org.openstreetmap.josm.gui.QuadSt
 import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.gui.preferences.SourceEntry;
 import org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference.PresetPrefHelper;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
@@ -1243,8 +1244,16 @@ public class TaggingPreset extends Abstr
                 final Collection<String> s = Main.pref.getCollection("taggingpreset.icon.sources", null);
                 ImageIcon icon = new ImageProvider(iconName).setDirs(s).setId("presets").setArchive(zipIcons).setOptional(true).get();
                 if (icon == null) {
-                    System.out.println("Could not get presets icon " + iconName);
-                    icon = new ImageIcon(iconName);
+                    if (iconName.startsWith("styles/standard/")) {
+                        String realIconName = iconName.replaceAll("styles/standard/", "");
+                        LinkedList<String> dirs = new LinkedList<String>();
+                        MapPaintStyles.addDebianDirs(dirs);
+                        icon = new ImageProvider(realIconName).setDirs(dirs).setId("presets").setArchive(zipIcons).setOptional(true).get();
+                    }
+                    if (icon == null) {
+                        System.out.println("Could not get presets icon " + iconName);
+                        icon = new ImageIcon(iconName);
+                    }
                 }
                 if (Math.max(icon.getIconHeight(), icon.getIconWidth()) != 16) {
                     icon = new ImageIcon(icon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));
