diff --git a/gpxsee.pro b/gpxsee.pro index 0594d022..a073b7dd 100644 --- a/gpxsee.pro +++ b/gpxsee.pro @@ -122,6 +122,9 @@ macx { } win32 { RC_ICONS = icons/gpxsee.ico \ - icons/gpx.ico + icons/gpx.ico \ + icons/tcx.ico \ + icons/kml.ico \ + icons/fit.ico } DEFINES += APP_VERSION=\\\"$$VERSION\\\" diff --git a/icons/fit.icns b/icons/fit.icns new file mode 100644 index 00000000..87250234 Binary files /dev/null and b/icons/fit.icns differ diff --git a/icons/fit.ico b/icons/fit.ico new file mode 100644 index 00000000..d7045868 Binary files /dev/null and b/icons/fit.ico differ diff --git a/icons/fit.svg b/icons/fit.svg new file mode 100644 index 00000000..96e1a268 --- /dev/null +++ b/icons/fit.svg @@ -0,0 +1,148 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FIT + diff --git a/icons/gpx.icns b/icons/gpx.icns index f99b3e4c..1cce3059 100644 Binary files a/icons/gpx.icns and b/icons/gpx.icns differ diff --git a/icons/gpx.ico b/icons/gpx.ico index c5f74ab9..1f91f097 100644 Binary files a/icons/gpx.ico and b/icons/gpx.ico differ diff --git a/icons/gpx.svg b/icons/gpx.svg new file mode 100644 index 00000000..e602c3d6 --- /dev/null +++ b/icons/gpx.svg @@ -0,0 +1,173 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GPX + diff --git a/icons/kml.icns b/icons/kml.icns new file mode 100644 index 00000000..9ad3465d Binary files /dev/null and b/icons/kml.icns differ diff --git a/icons/kml.ico b/icons/kml.ico new file mode 100644 index 00000000..ddac49ea Binary files /dev/null and b/icons/kml.ico differ diff --git a/icons/kml.svg b/icons/kml.svg new file mode 100644 index 00000000..8ad64b02 --- /dev/null +++ b/icons/kml.svg @@ -0,0 +1,148 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KML + diff --git a/icons/tcx.icns b/icons/tcx.icns new file mode 100644 index 00000000..d7298385 Binary files /dev/null and b/icons/tcx.icns differ diff --git a/icons/tcx.ico b/icons/tcx.ico new file mode 100644 index 00000000..b34177df Binary files /dev/null and b/icons/tcx.ico differ diff --git a/icons/tcx.svg b/icons/tcx.svg new file mode 100644 index 00000000..4a4f36eb --- /dev/null +++ b/icons/tcx.svg @@ -0,0 +1,148 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TCX + diff --git a/pkg/gpxsee.nsi b/pkg/gpxsee.nsi index 4b73889f..4b322edf 100644 --- a/pkg/gpxsee.nsi +++ b/pkg/gpxsee.nsi @@ -21,8 +21,11 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir" ; Registry key for uninstaller !define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee" -; GPX file type registry entry +; File types registry entries !define REGGPX "GPXSee.gpx" +!define REGTCX "GPXSee.tcx" +!define REGKML "GPXSee.kml" +!define REGFIT "GPXSee.fit" ; Start menu page configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" @@ -62,18 +65,6 @@ Section "GPXSee (required)" SEC_APP ; Put the files there File "gpxsee.exe" File "maps.txt" - - ; Write the installation path into the registry - WriteRegStr HKLM SOFTWARE\GPXSee "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "${REGENTRY}" "DisplayName" "GPXSee" - WriteRegStr HKLM "${REGENTRY}" "Publisher" "Martin Tuma" - WriteRegStr HKLM "${REGENTRY}" "DisplayVersion" "${VERSION}" - WriteRegStr HKLM "${REGENTRY}" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegDWORD HKLM "${REGENTRY}" "NoModify" 1 - WriteRegDWORD HKLM "${REGENTRY}" "NoRepair" 1 - WriteUninstaller "$INSTDIR\uninstall.exe" ; Create start menu entry and add links SetShellVarContext all @@ -83,11 +74,40 @@ Section "GPXSee (required)" SEC_APP CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GPXSee.lnk" "$INSTDIR\gpxsee.exe" !insertmacro MUI_STARTMENU_WRITE_END - ; Associate .gpx files + ; Create the uninstaller + WriteUninstaller "$INSTDIR\uninstall.exe" + + ; Write the installation path into the registry + DetailPrint "Registering application..." + WriteRegStr HKLM SOFTWARE\GPXSee "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "${REGENTRY}" "DisplayName" "GPXSee" + WriteRegStr HKLM "${REGENTRY}" "Publisher" "Martin Tuma" + WriteRegStr HKLM "${REGENTRY}" "DisplayVersion" "${VERSION}" + WriteRegStr HKLM "${REGENTRY}" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "${REGENTRY}" "NoModify" 1 + WriteRegDWORD HKLM "${REGENTRY}" "NoRepair" 1 + + ; Associate file formats + DetailPrint "Associating file types..." WriteRegStr HKCR ".gpx" "" "${REGGPX}" WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format" WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1" WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".tcx" "" "${REGTCX}" + WriteRegStr HKCR "${REGTCX}" "" "Training Center XML" + WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2" + WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".kml" "" "${REGKML}" + WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language" + WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3" + WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".fit" "" "${REGFIT}" + WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer" + WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4" + WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd @@ -149,6 +169,12 @@ Section "Uninstall" ; Remove GPX file association DeleteRegKey HKCR "${REGGPX}" DeleteRegKey HKCR ".gpx" + DeleteRegKey HKCR "${REGTCX}" + DeleteRegKey HKCR ".tcx" + DeleteRegKey HKCR "${REGKML}" + DeleteRegKey HKCR ".kml" + DeleteRegKey HKCR "${REGFIT}" + DeleteRegKey HKCR ".fit" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd diff --git a/pkg/gpxsee64.nsi b/pkg/gpxsee64.nsi index 4b5b4896..0f74e986 100644 --- a/pkg/gpxsee64.nsi +++ b/pkg/gpxsee64.nsi @@ -21,8 +21,11 @@ InstallDirRegKey HKLM "Software\GPXSee" "Install_Dir" ; Registry key for uninstaller !define REGENTRY "Software\Microsoft\Windows\CurrentVersion\Uninstall\GPXSee" -; GPX file type registry entry -!define REGGPX "GPXSee.gpx" +; File types registry entries +!define REGGPX "GPXSee.gpx" +!define REGTCX "GPXSee.tcx" +!define REGKML "GPXSee.kml" +!define REGFIT "GPXSee.fit" ; Start menu page configuration !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKLM" @@ -71,18 +74,6 @@ Section "GPXSee (required)" SEC_APP File "gpxsee.exe" File "maps.txt" - ; Write the installation path into the registry - WriteRegStr HKLM SOFTWARE\GPXSee "Install_Dir" "$INSTDIR" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "${REGENTRY}" "DisplayName" "GPXSee" - WriteRegStr HKLM "${REGENTRY}" "Publisher" "Martin Tuma" - WriteRegStr HKLM "${REGENTRY}" "DisplayVersion" "${VERSION}" - WriteRegStr HKLM "${REGENTRY}" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegDWORD HKLM "${REGENTRY}" "NoModify" 1 - WriteRegDWORD HKLM "${REGENTRY}" "NoRepair" 1 - WriteUninstaller "$INSTDIR\uninstall.exe" - ; Create start menu entry and add links SetShellVarContext all !insertmacro MUI_STARTMENU_WRITE_BEGIN Application @@ -91,11 +82,40 @@ Section "GPXSee (required)" SEC_APP CreateShortCut "$SMPROGRAMS\$StartMenuFolder\GPXSee.lnk" "$INSTDIR\gpxsee.exe" !insertmacro MUI_STARTMENU_WRITE_END - ; Associate .gpx files + ; Create the uninstaller + WriteUninstaller "$INSTDIR\uninstall.exe" + + ; Write the installation path into the registry + DetailPrint "Registering application..." + WriteRegStr HKLM SOFTWARE\GPXSee "Install_Dir" "$INSTDIR" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "${REGENTRY}" "DisplayName" "GPXSee" + WriteRegStr HKLM "${REGENTRY}" "Publisher" "Martin Tuma" + WriteRegStr HKLM "${REGENTRY}" "DisplayVersion" "${VERSION}" + WriteRegStr HKLM "${REGENTRY}" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "${REGENTRY}" "NoModify" 1 + WriteRegDWORD HKLM "${REGENTRY}" "NoRepair" 1 + + ; Associate file formats + DetailPrint "Associating file types..." WriteRegStr HKCR ".gpx" "" "${REGGPX}" WriteRegStr HKCR "${REGGPX}" "" "GPS Exchange Format" WriteRegStr HKCR "${REGGPX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,1" WriteRegStr HKCR "${REGGPX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".tcx" "" "${REGTCX}" + WriteRegStr HKCR "${REGTCX}" "" "Training Center XML" + WriteRegStr HKCR "${REGTCX}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,2" + WriteRegStr HKCR "${REGTCX}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".kml" "" "${REGKML}" + WriteRegStr HKCR "${REGKML}" "" "Keyhole Markup Language" + WriteRegStr HKCR "${REGKML}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,3" + WriteRegStr HKCR "${REGKML}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + WriteRegStr HKCR ".fit" "" "${REGFIT}" + WriteRegStr HKCR "${REGFIT}" "" "Flexible and Interoperable Data Transfer" + WriteRegStr HKCR "${REGFIT}\DefaultIcon" "" "$INSTDIR\GPXSee.exe,4" + WriteRegStr HKCR "${REGFIT}\shell\open\command" "" "$\"$INSTDIR\GPXSee.exe$\" $\"%1$\"" + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd @@ -150,9 +170,15 @@ Section "Uninstall" Delete "$SMPROGRAMS\$StartMenuFolder\*.*" RMDir "$SMPROGRAMS\$StartMenuFolder" - ; Remove GPX file association + ; Remove File associations DeleteRegKey HKCR "${REGGPX}" DeleteRegKey HKCR ".gpx" + DeleteRegKey HKCR "${REGTCX}" + DeleteRegKey HKCR ".tcx" + DeleteRegKey HKCR "${REGKML}" + DeleteRegKey HKCR ".kml" + DeleteRegKey HKCR "${REGFIT}" + DeleteRegKey HKCR ".fit" System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' SectionEnd