NSIS: Browse VLC dir, Server icon, misc improvs.

This commit is contained in:
Et0h 2014-06-29 18:18:38 +01:00
parent 59d0284160
commit 87423a8307

View File

@ -41,7 +41,8 @@ NSIS_SCRIPT_TEMPLATE = r"""
VIAddVersionKey /LANG=$${LANG_POLISH} "FileDescription" "Syncplay" VIAddVersionKey /LANG=$${LANG_POLISH} "FileDescription" "Syncplay"
LangString ^Associate $${LANG_ENGLISH} "Associate Syncplay with multimedia files." LangString ^Associate $${LANG_ENGLISH} "Associate Syncplay with multimedia files."
LangString ^VLC $${LANG_ENGLISH} "Install Syncplay interface for VLC (requires VLC 2.x.x)" LangString ^VLC $${LANG_ENGLISH} "Install Syncplay interface for VLC 2 and above"
LangString ^BrowseVLCBtn $${LANG_ENGLISH} "Select VLC folder"
LangString ^Shortcut $${LANG_ENGLISH} "Create Shortcuts in following locations:" LangString ^Shortcut $${LANG_ENGLISH} "Create Shortcuts in following locations:"
LangString ^StartMenu $${LANG_ENGLISH} "Start Menu" LangString ^StartMenu $${LANG_ENGLISH} "Start Menu"
LangString ^Desktop $${LANG_ENGLISH} "Desktop" LangString ^Desktop $${LANG_ENGLISH} "Desktop"
@ -49,7 +50,8 @@ NSIS_SCRIPT_TEMPLATE = r"""
LangString ^UninstConfig $${LANG_ENGLISH} "Delete configuration file." LangString ^UninstConfig $${LANG_ENGLISH} "Delete configuration file."
LangString ^Associate $${LANG_POLISH} "Skojarz Syncplaya z multimediami" LangString ^Associate $${LANG_POLISH} "Skojarz Syncplaya z multimediami"
LangString ^VLC $${LANG_POLISH} "Zainstaluj interface Syncplaya dla VLC(wymaga VLC 2.0.X)" LangString ^VLC $${LANG_POLISH} "Zainstaluj interface Syncplaya dla VLC 2+"
LangString ^BrowseVLCBtn $${LANG_POLISH} "Określ folder VLC"
LangString ^Shortcut $${LANG_POLISH} "Utworz skroty w nastepujacych miejscach:" LangString ^Shortcut $${LANG_POLISH} "Utworz skroty w nastepujacych miejscach:"
LangString ^StartMenu $${LANG_POLISH} "Menu Start" LangString ^StartMenu $${LANG_POLISH} "Menu Start"
LangString ^Desktop $${LANG_POLISH} "Pulpit" LangString ^Desktop $${LANG_POLISH} "Pulpit"
@ -79,6 +81,7 @@ NSIS_SCRIPT_TEMPLATE = r"""
Var CheckBox_DesktopShortcut_State Var CheckBox_DesktopShortcut_State
Var CheckBox_QuickLaunchShortcut_State Var CheckBox_QuickLaunchShortcut_State
Var Button_Browse Var Button_Browse
Var Button_Browse_VLC
Var Directory Var Directory
Var GroupBox_DirSub Var GroupBox_DirSub
Var Label_Text Var Label_Text
@ -130,7 +133,7 @@ NSIS_SCRIPT_TEMPLATE = r"""
;Prevents from running more than one instance of installer and sets default state of checkboxes ;Prevents from running more than one instance of installer and sets default state of checkboxes
Function .onInit Function .onInit
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e' System::Call 'kernel32::CreateMutexA(i 0, i 0, t "SyncplayMutex") i .r1 ?e'
Pop $$R0 Pop $$R0
StrCmp $$R0 0 +3 StrCmp $$R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
@ -138,10 +141,9 @@ NSIS_SCRIPT_TEMPLATE = r"""
StrCpy $$CheckBox_Associate_State $${BST_CHECKED} StrCpy $$CheckBox_Associate_State $${BST_CHECKED}
StrCpy $$CheckBox_StartMenuShortcut_State $${BST_CHECKED} StrCpy $$CheckBox_StartMenuShortcut_State $${BST_CHECKED}
ReadRegStr $$VLC_Version HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" "VersionMajor" Call GetVLCDir
$${If} $$VLC_Version == "2" IfFileExists "$$VLC_Directory\vlc.exe" 0 +2
StrCpy $$CheckBox_VLC_State $${BST_CHECKED} StrCpy $$CheckBox_VLC_State $${BST_CHECKED}
$${EndIf}
Call GetSize Call GetSize
Call DriveSpace Call DriveSpace
@ -197,6 +199,10 @@ NSIS_SCRIPT_TEMPLATE = r"""
$${NSD_CreateCheckBox} 8u 59u 187u 10u "$$(^Associate)" $${NSD_CreateCheckBox} 8u 59u 187u 10u "$$(^Associate)"
Pop $$CheckBox_Associate Pop $$CheckBox_Associate
$${NSD_CreateBrowseButton} 185u 70u 70u 14u "$$(^BrowseVLCBtn)"
Pop $$Button_Browse_VLC
$${NSD_OnClick} $$Button_Browse_VLC DirectoryBrowseDialogVLC
$${NSD_CreateCheckBox} 8u 72u 250u 10u "$$(^VLC)" $${NSD_CreateCheckBox} 8u 72u 250u 10u "$$(^VLC)"
Pop $$CheckBox_VLC Pop $$CheckBox_VLC
@ -220,6 +226,8 @@ NSIS_SCRIPT_TEMPLATE = r"""
$${NSD_Check} $$CheckBox_VLC $${NSD_Check} $$CheckBox_VLC
$${EndIf} $${EndIf}
Call UpdateVLCCheckbox
$${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED} $${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED}
$${NSD_Check} $$CheckBox_StartMenuShortcut $${NSD_Check} $$CheckBox_StartMenuShortcut
$${EndIf} $${EndIf}
@ -263,6 +271,45 @@ NSIS_SCRIPT_TEMPLATE = r"""
Abort Abort
FunctionEnd FunctionEnd
Function GetVLCDir
IfFileExists "$$VLC_Directory\vlc.exe" VLCFound 0
ReadRegStr $$VLC_Directory HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "VLCInstallLocation"
IfFileExists "$$VLC_Directory\vlc.exe" VLCFound 0
ReadRegStr $$VLC_Directory HKLM "Software\VideoLAN\VLC" "InstallDir"
IfFileExists "$$VLC_Directory\vlc.exe" VLCFound 0
StrCpy $$VLC_Directory "c:\program files (x86)\videolan\vlc"
IfFileExists "$$VLC_Directory\vlc.exe" VLCFound 0
StrCpy $$VLC_Directory "c:\program files\videolan\vlc"
IfFileExists "$$VLC_Directory\vlc.exe" VLCFound 0
StrCpy $$VLC_Directory ""
VLCFound:
FunctionEnd
Function UpdateVLCCheckbox
IfFileExists "$$VLC_Directory\vlc.exe" VLC_Enabled VLC_Disabled
VLC_Enabled:
EnableWindow $$CheckBox_VLC 1
;StrCpy $$CheckBox_VLC_State $${BST_CHECKED}
goto CheckboxUpdated
VLC_Disabled:
EnableWindow $$CheckBox_VLC 0
;StrCpy $$CheckBox_VLC_State $${BST_UNCHECKED}
CheckboxUpdated:
FunctionEnd
Function DirectoryBrowseDialogVLC
nsDialogs::SelectFolderDialog $$(^BrowseVLCBtn) $$VLC_Directory
Pop $$Directory
$${If} $$Directory != error
StrCpy $$VLC_Directory $$Directory
Call UpdateVLCCheckbox
$${EndIf}
Abort
FunctionEnd
Function GetSize Function GetSize
StrCpy $$Size "$totalSize" StrCpy $$Size "$totalSize"
IntOp $$Size $$Size / 1024 IntOp $$Size $$Size / 1024
@ -288,6 +335,7 @@ NSIS_SCRIPT_TEMPLATE = r"""
$${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED} $${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED}
CreateDirectory $$SMPROGRAMS\Syncplay CreateDirectory $$SMPROGRAMS\Syncplay
CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" "" CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" ""
CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay Server.lnk" "$$INSTDIR\syncplayServer.exe" ""
CreateShortCut "$$SMPROGRAMS\Syncplay\Uninstall.lnk" "$$INSTDIR\Uninstall.exe" "" CreateShortCut "$$SMPROGRAMS\Syncplay\Uninstall.lnk" "$$INSTDIR\Uninstall.exe" ""
WriteINIStr "$$SMPROGRAMS\Syncplay\SyncplayWebsite.url" "InternetShortcut" "URL" "http://syncplay.pl" WriteINIStr "$$SMPROGRAMS\Syncplay\SyncplayWebsite.url" "InternetShortcut" "URL" "http://syncplay.pl"
$${EndIf} $${EndIf}
@ -301,9 +349,10 @@ NSIS_SCRIPT_TEMPLATE = r"""
$${EndIf} $${EndIf}
$${If} $$CheckBox_VLC_State == $${BST_CHECKED} $${If} $$CheckBox_VLC_State == $${BST_CHECKED}
ReadRegStr $$VLC_Directory HKLM "Software\VideoLAN\VLC" "InstallDir" IfFileExists "$$VLC_Directory\vlc.exe" 0 EndOfVLC
SetOutPath $$VLC_Directory\lua\intf SetOutPath $$VLC_Directory\lua\intf
File resources\lua\intf\syncplay.lua File resources\lua\intf\syncplay.lua
EndOfVLC:
$${EndIf} $${EndIf}
FunctionEnd FunctionEnd
@ -340,6 +389,7 @@ NSIS_SCRIPT_TEMPLATE = r"""
WriteRegStr HKLM SOFTWARE\Syncplay "Install_Dir" "$$INSTDIR" WriteRegStr HKLM SOFTWARE\Syncplay "Install_Dir" "$$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayName" "Syncplay" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayName" "Syncplay"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "InstallLocation" "$$INSTDIR" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "InstallLocation" "$$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "VLCInstallLocation" "$$VLC_Directory"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "UninstallString" '"$$INSTDIR\uninstall.exe"' WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "UninstallString" '"$$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayIcon" "$$INSTDIR\resources\icon.ico" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayIcon" "$$INSTDIR\resources\icon.ico"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "Publisher" "Syncplay" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "Publisher" "Syncplay"
@ -410,12 +460,14 @@ NSIS_SCRIPT_TEMPLATE = r"""
Function un.InstallOptions Function un.InstallOptions
Delete $$SMPROGRAMS\Syncplay\Syncplay.lnk Delete $$SMPROGRAMS\Syncplay\Syncplay.lnk
Delete "$$SMPROGRAMS\Syncplay\Syncplay Server.lnk"
Delete $$SMPROGRAMS\Syncplay\Uninstall.lnk Delete $$SMPROGRAMS\Syncplay\Uninstall.lnk
Delete $$SMPROGRAMS\Syncplay\SyncplayWebsite.url Delete $$SMPROGRAMS\Syncplay\SyncplayWebsite.url
RMDir $$SMPROGRAMS\Syncplay RMDir $$SMPROGRAMS\Syncplay
Delete $$DESKTOP\Syncplay.lnk Delete $$DESKTOP\Syncplay.lnk
Delete $$QUICKLAUNCH\Syncplay.lnk Delete $$QUICKLAUNCH\Syncplay.lnk
ReadRegStr $$VLC_Directory HKLM "Software\VideoLAN\VLC" "InstallDir" ReadRegStr $$VLC_Directory HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "VLCInstallLocation"
IfFileExists "$$VLC_Directory\lua\intf\syncplay.lua" 0 +2
Delete $$VLC_Directory\lua\intf\syncplay.lua Delete $$VLC_Directory\lua\intf\syncplay.lua
FunctionEnd FunctionEnd
@ -437,12 +489,18 @@ NSIS_SCRIPT_TEMPLATE = r"""
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay"
DeleteRegKey HKLM SOFTWARE\Syncplay DeleteRegKey HKLM SOFTWARE\Syncplay
Delete $$INSTDIR\uninstall.exe Delete $$INSTDIR\uninstall.exe
RMDir $$INSTDIR\Syncplay\\resources\lua\intf
RMDir $$INSTDIR\Syncplay\\resources\lua
RMDir $$INSTDIR\Syncplay\\resources
RMDir $$INSTDIR\resources RMDir $$INSTDIR\resources
RMDir $$INSTDIR\lib RMDir $$INSTDIR\lib
RMDir $$INSTDIR RMDir $$INSTDIR
$${If} $$Uninst_CheckBox_Config_State == $${BST_CHECKED} $${If} $$Uninst_CheckBox_Config_State == $${BST_CHECKED}
IfFileExists "$$APPDATA\.syncplay" 0 +2
Delete $$APPDATA\.syncplay Delete $$APPDATA\.syncplay
IfFileExists "$$APPDATA\syncplay.ini" 0 +2
Delete $$APPDATA\syncplay.ini
$${EndIf} $${EndIf}
SectionEnd SectionEnd
""" """
@ -527,7 +585,7 @@ common_info = dict(
name='Syncplay', name='Syncplay',
version=syncplay.version, version=syncplay.version,
author='Uriziel', author='Uriziel',
author_email='urizieli@gmail.com', author_email='dev@syncplay.pl',
description='Syncplay', description='Syncplay',
) )