--- /dev/null
+; Script generated by the Inno Setup Script Wizard.\r
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!\r
+\r
+#define MyAppName "Pithos+"\r
+#define SrcApp "PSourcex64\Pithos.Client.WPF.exe"\r
+#define MyAppPublisher "GRNET"\r
+#define MyAppURL "http://pithos.grnet.gr/"\r
+#define MyAppExeName "Pithos.Client.WPF.exe"\r
+#define MyAppVersion GetFileVersion(SrcApp)\r
+#define MyURL "http://www.grnet.gr/"\r
+\r
+[Setup]\r
+;WARNING: DO NOT CHANGE THE APP ID (AppId) or the update will not work correctly.\r
+;AppId is used to check if we are installed using this isntaller and not by other means.\r
+AppId={{926354B2-04D2-47CF-8FAA-04AB3682008B}\r
+AppName={#MyAppName}\r
+AppVersion={#MyAppVersion}\r
+AppVerName={#MyAppName} {#MyAppVersion}\r
+UninstallDisplayName={#MyAppName} {#MyAppVersion}\r
+AppPublisher={#MyAppPublisher}\r
+AppPublisherURL={#MyAppURL}\r
+AppSupportURL={#MyAppURL}\r
+AppUpdatesURL={#MyAppURL}\r
+DefaultDirName={pf}\PithosPlus\r
+DefaultGroupName={#MyAppName}\r
+AllowNoIcons=yes\r
+LicenseFile=Licenses\GRNET License.txt\r
+OutputBaseFilename=PithosPlus_Setupv{#MyAppVersion}\r
+SolidCompression=True\r
+UsePreviousSetupType=False\r
+UsePreviousTasks=False\r
+UsePreviousLanguage=False\r
+ShowTasksTreeLines=True\r
+AppCopyright=(c) 2011 - 2012 GRNET\r
+PrivilegesRequired=none\r
+EnableDirDoesntExistWarning=True\r
+DirExistsWarning=yes\r
+AppContact=okeanos@grnet.gr\r
+AppSupportPhone=+30 210 0000000\r
+AppReadmeFile=My Readme\r
+UninstallDisplayIcon={app}\Pithos.Client.WPF.exe\r
+WizardImageFile=Images\ppWZDImage.bmp\r
+WizardSmallImageFile=Images\ppWZDSmall.bmp\r
+VersionInfoVersion={#MyAppVersion}\r
+MinVersion=0,5.01sp3\r
+\r
+[Languages]\r
+Name: "english"; MessagesFile: "compiler:Default.isl"\r
+Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"\r
+Name: "german"; MessagesFile: "compiler:Languages\German.isl"\r
+Name: "french"; MessagesFile: "compiler:Languages\French.isl"\r
+Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"\r
+\r
+[CustomMessages]\r
+Web=You can visit our web site for more info\r
+\r
+[Tasks]\r
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; Components: Documentation RequiredFiles\r
+;Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1; Components: Manual RequiredFiles Source\r
+Name: "visitweb"; Description: "{cm:Web}"; GroupDescription: "{cm:Web}"; Flags: unchecked; Components: Documentation RequiredFiles; Languages: english french german greek spanish\r
+\r
+[Files]\r
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files\r
+Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: Is64BitInstallMode\r
+Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek; Check: not Is64BitInstallMode\r
+Source: "PSourcex64\AsyncCtpLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german spanish greek\r
+Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Caliburn.Micro.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Castle.ActiveRecord.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Castle.Components.Validator.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Castle.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Hardcodet.Wpf.TaskbarNotification.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Iesi.Collections.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\log4net.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Newtonsoft.Json.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\NHibernate.ByteCode.Castle.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\NHibernate.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\NHibernate.Search.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\ParallelExtensionsExtras.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Pithos.Client.WPF.exe.config"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Pithos.Core.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Pithos.Interfaces.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Pithos.Network.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\Pithos.ShellExtensions.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+;Source: "PSourcex64\Pithos.ShellExtensions.tlb"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\System.Data.SQLite.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\System.Threading.Tasks.Dataflow.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\System.Windows.Interactivity.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "PSourcex64\WPFToolkit.Extended.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\License.txt"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\TortoiseOverlays.dll"; DestDir: "{cf}/\TortoiseOverlays"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\AddedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\ConflictIcon.ico"; DestDir: "{cf}/TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\DeletedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\IgnoredIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\LockedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\ModifiedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\NormalIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\ReadOnlyIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+Source: "TortoiseOverlays\icons\XPStyle\UnversionedIcon.ico"; DestDir: "{cf}/\TortoiseOverlays/icons/\XPStyle"; Flags: ignoreversion; Components: RequiredFiles; Languages: english french german spanish greek\r
+;32 & 64 Bit\r
+;Source: "PSourcex64\Pithos.Client.WPF.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Is64BitInstallMode\r
+;Source: "PSource\Pithos.Client.WPF.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode\r
+;Redistributables\r
+Source: "Redistributables\*"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall\r
+Source: "Images\grnet-logo.bmp"; Flags: dontcopy\r
+Source: "Images\account.bmp"; Flags: dontcopy\r
+\r
+[Icons]\r
+Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"\r
+Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"\r
+Name: "{group}\{cm:ProgramOnTheWeb,GRNET}"; Filename: "{#MyURL}"\r
+Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"\r
+Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"\r
+Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon\r
+;Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon\r
+\r
+[Run]\r
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent\r
+\r
+[Registry]\r
+;Startup \r
+;Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Pithos+"; ValueData: """{app}\{#MyAppExeName}"""; Flags: createvalueifdoesntexist uninsdeletevalue\r
+\r
+Root: "HKCR"; Subkey: "*\shellex\ContextMenuHandlers\Pithos.FileContextMenu"; ValueData: "b1f1405d-94a1-4692-b72f-fc8caf8b8700"; Flags: createvalueifdoesntexist uninsdeletekey\r
+Root: "HKCR"; Subkey: "CLSID\0CFB4119-DABE-4E32-AB2D-2D41873BC599"; ValueData: "PithosContextMenu Class"; Flags: createvalueifdoesntexist uninsdeletekey\r
+\r
+[Components]\r
+Name: "RequiredFiles"; Description: "Required Files"; Types: Advanced Default; Flags: checkablealone fixed; Languages: english french german greek spanish\r
+Name: "Documentation"; Description: "Documentation"; Types: Default Advanced; Flags: dontinheritcheck; Languages: english french german greek spanish\r
+\r
+[Types]\r
+Name: "Default"; Description: "Default Installation"; Languages: english french german greek spanish\r
+Name: "Advanced"; Description: "Custom Installation"; Flags: iscustom; Languages: english german french greek spanish\r
+\r
+[Dirs]\r
+Name: "{cf}/\TortoiseOverlays"; Components: RequiredFiles; Tasks: desktopicon; Languages: english french german greek spanish\r
+Name: "{cf}/\TortoiseOverlays/\icons"\r
+Name: "{cf}/\TortoiseOverlays/icons/\XPStyle"\r
+\r
+\r
+[Code]\r
+const \r
+ WM_QUIT = 18;\r
+ MyAppMutex = 'MYAPPMUTEX';\r
+var \r
+dotNET40Missing: Boolean;\r
+ IsUpdate: boolean;\r
+ UsagePage: TOutputMsgWizardPage;\r
+ Wz1, Wz2 : TOutputMsgWizardPage;\r
+\r
+function IsDotNetDetected(version: string; service: cardinal): boolean;\r
+// 'v1.1.4322' .NET Framework 1.1\r
+// 'v2.0.50727' .NET Framework 2.0\r
+// 'v3.0' .NET Framework 3.0\r
+// 'v3.5' .NET Framework 3.5\r
+// 'v4\Client' .NET Framework 4.0 Client Profile\r
+// 'v4\Full' .NET Framework 4.0 Full Installation\r
+// service pack\r
+// 0 No service packs required\r
+// 1, 2, etc. Service pack 1, 2, etc. required\r
+// if not IsDotNetDetected('v4\Client', 0) then begin\r
+var\r
+ key: string;\r
+ install, serviceCount: cardinal;\r
+ success: boolean;\r
+ \r
+begin\r
+ key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;\r
+ // .NET 3.0 uses value InstallSuccess in subkey Setup\r
+ if Pos('v3.0', version) = 1 then begin\r
+ success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);\r
+ end else begin\r
+ success := RegQueryDWordValue(HKLM, key, 'Install', install);\r
+ end;\r
+ // .NET 4.0 uses value Servicing instead of SP\r
+ if Pos('v4', version) = 1 then begin\r
+ success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);\r
+ end else begin\r
+ success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);\r
+ end;\r
+ result := success and (install = 1) and (serviceCount >= service);\r
+end;\r
+\r
+function InitializeSetup(): Boolean;\r
+begin\r
+ // Test the presence of .NET 4.0\r
+ if (not(RegKeyExists(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4'))) then\r
+ dotNET40Missing := True;\r
+\r
+ Result := True;\r
+end;\r
+\r
+function ShouldInstalldotNET40(): Boolean;\r
+begin\r
+ Result := dotNET40Missing;\r
+end;\r
+\r
+procedure CurPageChanged(CurPageID: Integer);\r
+begin\r
+ if CurPageID = wpInstalling then\r
+ IsUpdate := FileExists(ExpandConstant('{app}\{#MyAppExeName}'));\r
+end;\r
+\r
+function NotAnUpdate: Boolean;\r
+begin\r
+ result := not IsUpdate;\r
+end;\r
+\r
+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);\r
+var\r
+mRes : integer;\r
+begin\r
+ case CurUninstallStep of\r
+ usUninstall:\r
+ begin\r
+ mRes := MsgBox('Do you want to remove your settings?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2)\r
+ if mRes = IDYES then\r
+ begin\r
+ DelTree(ExpandConstant('{localappdata}')+'\GRNET',true,true,true);\r
+ End\r
+ else\r
+ MsgBox ('Settings will not be removed', mbInformation, MB_OK); \r
+ end;\r
+ end;\r
+end;\r
+\r
+procedure BitmapImageOnClick(Sender: TObject);\r
+var\r
+ ErrCode: integer;\r
+begin\r
+ ShellExec('open', 'http://pithos.grnet.gr','', '', SW_SHOW, ewNoWait, ErrCode);\r
+end;\r
+\r
+procedure CreateTheWizardPages;\r
+var\r
+ Page: TWizardPage;\r
+ Button, FormButton: TNewButton;\r
+ BitmapImage,BitmapImage1: TBitmapImage;\r
+ BitmapFileName: String;\r
+ Memo: TMemo;\r
+ LabelWz: TLabel;\r
+begin\r
+\r
+ Page := CreateCustomPage(wpWelcome, 'GRNET Pithos+ Dev Build {#MyAppVersion}', 'Software License');\r
+ BitmapFileName := ExpandConstant('{tmp}\grnet-logo.bmp');\r
+ ExtractTemporaryFile(ExtractFileName(BitmapFileName));\r
+ \r
+ Page.Surface.Color := clWhite;\r
+ BitmapImage := TBitmapImage.Create(Page);\r
+ BitmapImage.AutoSize := True;\r
+ BitmapImage.Bitmap.LoadFromFile(BitmapFileName);\r
+ BitmapImage.Cursor := crHand;\r
+ BitmapImage.Left := (Page.Surfacewidth - BitmapImage.Width) / 2;\r
+ BitmapImage.Top := Page.Surface.Top;\r
+ BitmapImage.OnClick := @BitmapImageOnClick;\r
+ BitmapImage.Parent := Page.Surface;\r
+ \r
+ Memo := TMemo.Create(Page);\r
+ Memo.Top := BitmapImage.Height;\r
+ Memo.Width := Page.SurfaceWidth;\r
+ Memo.Height := Page.SurfaceHeight - (BitmapImage.Height)\r
+ Memo.ScrollBars := ssVertical;\r
+ Memo.Text := 'This software is provided by GRNET S.A. "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall GRNET S.A. or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.';\r
+ Memo.Parent := Page.Surface;\r
+ \r
+ Page := CreateCustomPage(wpInfoAfter, 'First Steps', 'Setup your account');\r
+ BitmapFileName := ExpandConstant('{tmp}\account.bmp');\r
+ ExtractTemporaryFile(ExtractFileName(BitmapFileName));\r
+\r
+ Page.Surface.Color := clWhite;\r
+ BitmapImage1 := TBitmapImage.Create(Page);\r
+ BitmapImage1.width := Page.SurfaceWidth;\r
+ BitmapImage1.height := PAge.SurfaceHeight;\r
+ BitmapImage1.Bitmap.LoadFromFile(BitmapFileName);\r
+ //BitmapImage1.Cursor := crHand;\r
+ BitmapImage1.Left := 0 //(Page.Surfacewidth - BitmapImage.Width) / 2;\r
+ BitmapImage1.Top := Page.Surface.Top;\r
+ //BitmapImage1.OnClick := @BitmapImageOnClick;\r
+ BitmapImage1.Parent := Page.Surface;\r
+ \r
+ LabelWz := Tlabel.Create(Page);\r
+ LabelWz.Top := 0;\r
+ LabelWz.Caption := 'To setup your account right click on the Pithos+ icon in the taskbar.';\r
+ LabelWz.Parent := Page.Surface;\r
+end;\r
+\r
+procedure InitializeWizard;\r
+var\r
+winHwnd: longint;\r
+retVal : boolean;\r
+strProg: string;\r
+begin\r
+ winHwnd := FindWindowByClassName('{#MyAppExeName}');\r
+ if winHwnd<>0 then begin { no module found or ignored pressed}\r
+ postmessage(winHwnd,WM_QUIT,0,0);\r
+ //abort(); \r
+ end; \r
+\r
+ CreateTheWizardPages;\r
+end;\r
+\r
+[Run]\r
+Filename: {tmp}\dotNetFx40_Client_setup.exe; Description: Install Microsoft .Net Framework 4.0; Parameters: /q /noreboot; Flags: skipifdoesntexist; Check: ShouldInstalldotNET40
\ No newline at end of file