Index: /applications/editors/josm/nsis/README.txt
===================================================================
--- /applications/editors/josm/nsis/README.txt	(revision 4470)
+++ /applications/editors/josm/nsis/README.txt	(revision 4471)
@@ -62,3 +62,2 @@
 - some way of automatic installer generation on the server (e.g. nightly build)?
 - install all josm plugins by default and only enable them according to user wishes?
-- make installation of icons and file extensions optional
Index: /applications/editors/josm/nsis/josm.nsi
===================================================================
--- /applications/editors/josm/nsis/josm.nsi	(revision 4470)
+++ /applications/editors/josm/nsis/josm.nsi	(revision 4471)
@@ -275,4 +275,100 @@
 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\App Paths\josm.exe" "Path" '$INSTDIR'
 
+SectionEnd ; "Required"
+
+
+Section "JOSM" SecJosm
+;-------------------------------------------
+SectionIn 1
+SetOutPath $INSTDIR
+File "josm.exe"
+
+; XXX - should be provided/done by josm.jar itself and not here!
+SetShellVarContext current
+SetOutPath "$APPDATA\JOSM"
+
+; don't overwrite existing bookmarks
+IfFileExists preferences dont_overwrite_bookmarks
+File "bookmarks"
+dont_overwrite_bookmarks:
+
+; don't overwrite existing de_streets.xml file
+IfFileExists de-streets.xml dont_overwrite_de_streets
+File "de-streets.xml"
+dont_overwrite_de_streets:
+
+; write reasonable defaults for some preferences
+; XXX - some of this should be done in JOSM itself
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "laf" "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "download.osm" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "layerlist.visible" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "commandstack.visible" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "propertiesdialog.visible" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "validator.visible" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "draw.segment.direction" "true"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "projection" "org.openstreetmap.josm.data.projection.Epsg4326"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "osm-server.url" "http://www.openstreetmap.org/api"
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "taggingpreset.sources" "$APPDATA/JOSM/de-streets.xml"
+SectionEnd
+
+
+SectionGroup "Plugins" SecPluginsGroup
+
+Section "mappaint" SecMappaintPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\mappaint.jar"
+SectionEnd
+
+Section "osmarender" SecOsmarenderPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\osmarender.jar"
+; XXX - should be done inside the plugin and not here!
+SetShellVarContext current
+${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "osmarender.firefox" "$PROGRAMFILES\Mozilla Firefox\firefox.exe"
+SectionEnd
+
+Section "WMS" SecWMSPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\wmsplugin.jar"
+SectionEnd
+
+Section "namefinder" SecNamefinderPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\namefinder.jar"
+SectionEnd
+
+Section "validator" SecValidatorPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\validator.jar"
+SectionEnd
+
+Section "tways" SecTWaysPlugin
+;-------------------------------------------
+SectionIn 1 2
+SetShellVarContext all
+SetOutPath $APPDATA\JOSM\plugins
+File "downloads\tways-0.2.jar"
+SectionEnd
+
+SectionGroupEnd	; "Plugins"
+
+Section "Start Menu Entry" SecStartMenu
+;-------------------------------------------
+SectionIn 1 2
 ; Create start menu entries (depending on additional tasks page)
 ;ReadINIStr $0 "$PLUGINSDIR\AdditionalTasksPage.ini" "Field 2" "State"
@@ -282,5 +378,9 @@
 CreateShortCut "$SMPROGRAMS\JOSM.lnk" "$INSTDIR\josm.exe" "" "$INSTDIR\josm.exe" 0 "" "" "JAVA OpenStreetMap - Editor"
 ;SecRequired_skip_StartMenu:
-
+SectionEnd
+
+Section "Desktop Icon" SecDesktopIcon
+;-------------------------------------------
+; SectionIn 1 2
 ; is command line option "/desktopicon" set?
 ;${GetParameters} $R0
@@ -295,5 +395,9 @@
 CreateShortCut "$DESKTOP\JOSM.lnk" "$INSTDIR\josm.exe" "" "$INSTDIR\josm.exe" 0 "" "" "JAVA OpenStreetMap - Editor"
 ;SecRequired_skip_DesktopIcon:
-
+SectionEnd
+
+Section "Quick Launch Icon" SecQuickLaunchIcon
+;-------------------------------------------
+SectionIn 1 2
 ; is command line option "/quicklaunchicon" set?
 ;${GetParameters} $R0
@@ -308,5 +412,9 @@
 CreateShortCut "$QUICKLAUNCH\JOSM.lnk" "$INSTDIR\josm.exe" "" "$INSTDIR\josm.exe" 0 "" "" "JAVA OpenStreetMap - Editor"
 ;SecRequired_skip_QuickLaunchIcon:
-
+SectionEnd
+
+Section "File Extensions" SecFileExtensions
+;-------------------------------------------
+SectionIn 1 2
 ; Create File Extensions (depending on additional tasks page)
 ;ReadINIStr $0 "$PLUGINSDIR\AdditionalTasksPage.ini" "Field 6" "State"
@@ -324,100 +432,10 @@
 !insertmacro UpdateIcons
 ;SecRequired_skip_FileExtensions:
-
-SectionEnd ; "Required"
-
-
-Section "JOSM" SecJosm
-;-------------------------------------------
-SectionIn 1
-SetOutPath $INSTDIR
-File "josm.exe"
-
-; XXX - should be provided/done by josm.jar itself and not here!
-SetShellVarContext current
-SetOutPath "$APPDATA\JOSM"
-
-; don't overwrite existing bookmarks
-IfFileExists preferences dont_overwrite_bookmarks
-File "bookmarks"
-dont_overwrite_bookmarks:
-
-; don't overwrite existing de_streets.xml file
-IfFileExists de-streets.xml dont_overwrite_de_streets
-File "de-streets.xml"
-dont_overwrite_de_streets:
-
-; write reasonable defaults for some preferences
-; XXX - some of this should be done in JOSM itself
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "laf" "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "download.osm" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "layerlist.visible" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "commandstack.visible" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "propertiesdialog.visible" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "validator.visible" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "draw.segment.direction" "true"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "projection" "org.openstreetmap.josm.data.projection.Epsg4326"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "osm-server.url" "http://www.openstreetmap.org/api"
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "taggingpreset.sources" "$APPDATA/JOSM/de-streets.xml"
-SectionEnd
-
-
-SectionGroup /e "Plugins" SecPluginsGroup
-
-Section "mappaint" SecMappaintPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\mappaint.jar"
-SectionEnd
-
-Section "osmarender" SecOsmarenderPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\osmarender.jar"
-; XXX - should be done inside the plugin and not here!
-SetShellVarContext current
-${WriteINIStrNS} $R0 "$APPDATA\JOSM\preferences" "osmarender.firefox" "$PROGRAMFILES\Mozilla Firefox\firefox.exe"
-SectionEnd
-
-Section "WMS" SecWMSPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\wmsplugin.jar"
-SectionEnd
-
-Section "namefinder" SecNamefinderPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\namefinder.jar"
-SectionEnd
-
-Section "validator" SecValidatorPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\validator.jar"
-SectionEnd
-
-Section "tways" SecTWaysPlugin
-;-------------------------------------------
-SectionIn 1 2
-SetShellVarContext all
-SetOutPath $APPDATA\JOSM\plugins
-File "downloads\tways-0.2.jar"
-SectionEnd
-
-SectionGroupEnd	; "Plugins"
+SectionEnd
+
 
 Section "-PluginSetting"
 ;-------------------------------------------
+SectionIn 1 2
 ;MessageBox MB_OK "PluginSetting!" IDOK 0
 ; XXX - should better be handled inside JOSM (recent plugin manager is going in the right direction)
@@ -518,5 +536,5 @@
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
   !insertmacro MUI_DESCRIPTION_TEXT ${SecJosm} "JOSM is the JAVA OpenStreetMap editor for .osm files."
-  !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsGroup} "Various JOSM plugins."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecPluginsGroup} "An assortment of useful JOSM plugins."
   !insertmacro MUI_DESCRIPTION_TEXT ${SecMappaintPlugin} "An alternative renderer for the map with colouring, line thickness, icons after tags."
   !insertmacro MUI_DESCRIPTION_TEXT ${SecOsmarenderPlugin} "Displays the current screen as nicely rendered SVG graphics in FireFox."
@@ -525,4 +543,10 @@
   !insertmacro MUI_DESCRIPTION_TEXT ${SecValidatorPlugin} "Validates edited data if it conforms to common suggestions."
   !insertmacro MUI_DESCRIPTION_TEXT ${SecTwaysPlugin} "Mass wayfication of segments."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenu} "Add a JOSM start menu entry."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopIcon} "Add a JOSM desktop icon."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecQuickLaunchIcon} "Add a JOSM icon to the quick launch bar."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SecFileExtensions} "Add JOSM file extensions for .osm and .gpx files."
+  
+
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
