Update of /cvsroot/spambayes/spambayes/windows
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21528/windows
Modified Files:
spambayes.iss
Log Message:
Optionally install imapfilter.
Optionally install the plug-in for all users.
Use a custom tasks page to handle the more complicated tasks we have now.
Index: spambayes.iss
===================================================================
RCS file: /cvsroot/spambayes/spambayes/windows/spambayes.iss,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** spambayes.iss 31 Jan 2005 22:21:34 -0000 1.20
--- spambayes.iss 29 Mar 2005 06:57:29 -0000 1.21
***************
*** 22,25 ****
--- 22,27 ----
Source: "py2exe\dist\lib\*.*"; DestDir: "{app}\lib"; Flags: ignoreversion
Source: "py2exe\dist\bin\python24.dll"; DestDir: "{app}\bin"; Flags:
ignoreversion
+ ; Needed when built with Python 2.4. This must be manually copied to this
directory
+ ; from wherever it is being sourced from.
; Source: "py2exe\dist\bin\msvcr71.dll"; DestDir: "{app}\bin"; Flags:
ignoreversion
***************
*** 41,44 ****
--- 43,48 ----
Source: "py2exe\dist\docs\sb_server\*.*"; DestDir: "{app}\docs\sb_server";
Check: InstallingProxy; Flags: recursesubdirs
+ Source: "py2exe\dist\bin\sb_imapfilter.exe"; DestDir: "{app}\bin"; Check:
InstallingIMAP; Flags: ignoreversion
+
; There is a problem attempting to get Inno to unregister our DLL. If we
mark our DLL
; as 'regserver', it installs and registers OK, but at uninstall time, it
unregisters
***************
*** 53,63 ****
; a special case for that). We do both a single-user registration and then
the all-user, because
; that keeps the script much simpler, and it doesn't do any harm.
! ;Filename: "{app}\bin\outlook_addin_register.exe"; Parameters:
"HKEY_LOCAL_MACHINE"; StatusMsg: "Registering Outlook Addin for all users";
Check: OutlookAllUsers;
[UninstallRun]
! Filename: "{app}\bin\outlook_addin_register.exe"; Parameters: "--unregister";
StatusMsg: "Unregistering Outlook Addin";Check: InstallingOutlook;
!
! [Tasks]
! Name: startup; Description: "Execute SpamBayes each time Windows starts";
! Name: desktop; Description: "Add an icon to the desktop"; Flags: unchecked;
[Run]
--- 57,63 ----
; a special case for that). We do both a single-user registration and then
the all-user, because
; that keeps the script much simpler, and it doesn't do any harm.
! Filename: "{app}\bin\outlook_addin_register.exe"; Parameters:
"HKEY_LOCAL_MACHINE"; StatusMsg: "Registering Outlook Addin for all users";
Check: InstallOutlookAllUsers;
[UninstallRun]
! Filename: "{app}\bin\outlook_addin_register.exe"; Parameters: "--unregister";
StatusMsg: "Unregistering Outlook Addin"; Check: InstallingOutlook;
[Run]
***************
*** 65,76 ****
[Icons]
! Name: "{group}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: InstallingProxy
! Name: "{userdesktop}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: InstallingProxy; Tasks: desktop
! Name: "{userstartup}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: InstallingProxy; Tasks: startup
Name: "{group}\About SpamBayes"; Filename:
"{app}\docs\sb_server\readme_proxy.html"; Check: InstallingProxy;
Name: "{group}\Troubleshooting Guide"; Filename:
"{app}\docs\sb_server\troubleshooting.html"; Check: InstallingProxy;
! Name: "{group}\SpamBayes Outlook Addin\About SpamBayes"; Filename:
"{app}\docs\outlook\about.html"; Check: InstallingOutlook
! Name: "{group}\SpamBayes Outlook Addin\Troubleshooting Guide"; Filename:
"{app}\docs\outlook\docs\troubleshooting.html"; Check: InstallingOutlook
[UninstallDelete]
--- 65,79 ----
[Icons]
! Name: "{group}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: InstallingProxy;
! Name: "{userdesktop}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: DesktopIcon;
! Name: "{userstartup}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe";
Check: StartupProxy;
Name: "{group}\About SpamBayes"; Filename:
"{app}\docs\sb_server\readme_proxy.html"; Check: InstallingProxy;
Name: "{group}\Troubleshooting Guide"; Filename:
"{app}\docs\sb_server\troubleshooting.html"; Check: InstallingProxy;
! Name: "{group}\SpamBayes IMAP Filter Web Interface"; Filename:
"{app}\sb_imapfilter.exe"; Parameters: "-b"; Check: InstallingIMAP;
! Name: "{userstartup}\SpamBayes IMAP Filter"; Filename:
"{app}\bin\sb_imapfilter.exe"; Parameters: "-c -t"; Check: StartupIMAP;
!
! Name: "{group}\SpamBayes Outlook Addin\About SpamBayes"; Filename:
"{app}\docs\outlook\about.html"; Check: InstallingOutlook;
! Name: "{group}\SpamBayes Outlook Addin\Troubleshooting Guide"; Filename:
"{app}\docs\outlook\docs\troubleshooting.html"; Check: InstallingOutlook;
[UninstallDelete]
***************
*** 78,83 ****
[Code]
var
! InstallOutlook, InstallProxy: Boolean;
WarnedNoOutlook, WarnedBoth : Boolean;
function InstallingOutlook() : Boolean;
--- 81,87 ----
[Code]
var
! InstallOutlook, InstallProxy, InstallIMAP: Boolean;
WarnedNoOutlook, WarnedBoth : Boolean;
+ startup, desktop, allusers, startup_imap : Boolean; // Tasks
function InstallingOutlook() : Boolean;
***************
*** 89,92 ****
--- 93,117 ----
Result := InstallProxy;
end;
+ function InstallingIMAP() : Boolean;
+ begin
+ Result := InstallIMAP;
+ end;
+
+ function StartupProxy() : Boolean;
+ begin
+ Result := startup;
+ end;
+ function DesktopIcon() : Boolean;
+ begin
+ Result := desktop;
+ end;
+ function InstallOutlookAllUsers() : Boolean;
+ begin
+ Result := allusers;
+ end;
+ function StartupIMAP() : Boolean;
+ begin
+ Result := startup_imap;
+ end;
function IsOutlookInstalled() : Boolean;
***************
*** 139,159 ****
if IsOutlookInstalled() then begin
InstallOutlook := True;
! InstallProxy := False
end
else begin
InstallOutlook := False;
InstallProxy := True;
end;
end;
// Inno has a pretty primitive "Components/Tasks" concept that
! // doesn't quite fit what we want - so we create a custom wizard page.
var
ComponentsPage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
! { Create the pages }
ComponentsPage := CreateInputOptionPage(wpWelcome,
--- 164,191 ----
if IsOutlookInstalled() then begin
InstallOutlook := True;
! InstallProxy := False;
! InstallIMAP := False;
end
else begin
InstallOutlook := False;
InstallProxy := True;
+ InstallIMAP := False;
end;
+ startup := False;
+ desktop := False;
+ allusers := False;
+ startup_imap := False;
end;
// Inno has a pretty primitive "Components/Tasks" concept that
! // doesn't quite fit what we want - so we create custom wizard pages.
var
ComponentsPage: TInputOptionWizardPage;
+ TasksPage: TInputOptionWizardPage;
procedure InitializeWizard;
begin
! { Create the Components page }
ComponentsPage := CreateInputOptionPage(wpWelcome,
***************
*** 167,170 ****
--- 199,203 ----
ComponentsPage.Add('Microsoft Outlook Addin (Outlook does not appear to
be installed)');
ComponentsPage.Add('Server/Proxy Application, for all other POP based mail
clients, including Outlook Express');
+ ComponentsPage.Add('IMAP Filter Application, for all other IMAP based mail
clients');
{ Set default values based on whether or not Outlook is installed. }
***************
*** 172,181 ****
if InstallOutlook then ComponentsPage.Values[0] := True else
ComponentsPage.Values[0] := False;
if InstallProxy then ComponentsPage.Values[1] := True else
ComponentsPage.Values[1] := False;
! end;
! function ShouldSkipPage(PageID: Integer): Boolean;
! begin
! { Skip pages that shouldn't be shown }
! Result := (PageID = wpSelectTasks) and (not InstallProxy);
end;
--- 205,216 ----
if InstallOutlook then ComponentsPage.Values[0] := True else
ComponentsPage.Values[0] := False;
if InstallProxy then ComponentsPage.Values[1] := True else
ComponentsPage.Values[1] := False;
! if InstallIMAP then ComponentsPage.Values[2] := True else
ComponentsPage.Values[2] := False;
! { Create the Tasks page. Note that this is empty and gets replaced later. }
! TasksPage := CreateInputOptionPage(ComponentsPage.ID,
! 'Select additional tasks',
! 'Which additional tasks should be performed?',
! 'Select the components you would like Setup to perform while installing
SpamBayes, then click Next.',
! False, False);
end;
***************
*** 185,191 ****
--- 220,243 ----
begin
{ Validate certain pages before allowing the user to proceed }
+ if CurPageID = TasksPage.ID then begin
+ I := 0;
+ if InstallOutlook then begin
+ allusers := TasksPage.Values[I];
+ I := I + 1;
+ end;
+ if InstallProxy then begin
+ startup := TasksPage.Values[I];
+ desktop := TasksPage.Values[I+1];
+ I := I + 2;
+ end;
+ if InstallIMAP then begin
+ startup_imap := TasksPage.Values[I];
+ I := I + 1;
+ end;
+ end;
if CurPageID = ComponentsPage.ID then begin
InstallOutlook := ComponentsPage.Values[0];
InstallProxy := ComponentsPage.Values[1];
+ InstallIMAP := ComponentsPage.Values[2];
if InstallOutlook and not IsOutlookInstalled and not WarnedNoOutlook then
begin
***************
*** 201,207 ****
end else
Result := False;
! end else if InstallOutlook and InstallProxy and not WarnedBoth then begin
if MsgBox(
! 'You have selected to install both the Outlook Addin and the
Server/Proxy Applications.' + #13 + #13 +
'Unless you regularly use both Outlook and another mailer on the
same system,' + #13 +
'you do not need both applications.' + #13 + #13 +
--- 253,259 ----
end else
Result := False;
! end else if InstallOutlook and (InstallProxy or InstallIMAP) and not
WarnedBoth then begin
if MsgBox(
! 'You have selected to install both the Outlook Addin and the
Server/Proxy/IMAP Applications.' + #13 + #13 +
'Unless you regularly use both Outlook and another mailer on the
same system,' + #13 +
'you do not need both applications.' + #13 + #13 +
***************
*** 212,216 ****
end else
Result := False;
! end else if not InstallOutlook and not InstallProxy then begin
MsgBox('You must select one of the applications.', mbError, MB_OK);
Result := False;
--- 264,268 ----
end else
Result := False;
! end else if not InstallOutlook and not InstallProxy and not InstallIMAP
then begin
MsgBox('You must select one of the applications.', mbError, MB_OK);
Result := False;
***************
*** 218,223 ****
// we got to here, we are OK.
Result := True;
! end else
! Result := True;
end;
--- 270,291 ----
// we got to here, we are OK.
Result := True;
!
! // Generate the Tasks page based on the component selections.
! TasksPage.Free();
! TasksPage := CreateInputOptionPage(ComponentsPage.ID,
! 'Select additional tasks',
! 'Which additional tasks should be performed?',
! 'Select the components you would like Setup to perform while installing
SpamBayes, then click Next.',
! False, False);
! if InstallOutlook then
! TasksPage.Add('Register add-in for all users');
! if InstallProxy then begin
! TasksPage.Add('Execute SpamBayes each time Windows starts');
! TasksPage.Add('Add an icon to the desktop');
! end;
! if InstallIMAP then
! TasksPage.Add('Automatically execute IMAP filter periodically');
! end else
! Result := True;
end;
***************
*** 231,239 ****
if InstallOutlook then S := S + Space + 'Outlook Addin' + NewLine
if InstallProxy then S := S + Space + 'Server/Proxy Application' + NewLine
S := S + NewLine;
S := S + MemoDirInfo + NewLine + NewLine;
S := S + MemoGroupInfo + NewLine + NewLine;
! S := S + MemoTasksInfo;
Result := S;
--- 299,313 ----
if InstallOutlook then S := S + Space + 'Outlook Addin' + NewLine
if InstallProxy then S := S + Space + 'Server/Proxy Application' + NewLine
+ if InstallIMAP then S := S + Space + 'IMAP Filter Application' + NewLine
S := S + NewLine;
S := S + MemoDirInfo + NewLine + NewLine;
S := S + MemoGroupInfo + NewLine + NewLine;
!
! S := S + 'Additional Tasks:' + NewLine;
! if startup then S := S + Space + 'Run Proxy on Startup' + NewLine
! if desktop then S := S + Space + 'Install Proxy Desktop Icon' + NewLine
! if allusers then S := S + Space + 'Install Addin for all users' + NewLine
! if startup_imap then S := S + Space + 'Automatically run Filter' + NewLine
Result := S;
_______________________________________________
Spambayes-checkins mailing list
[email protected]
http://mail.python.org/mailman/listinfo/spambayes-checkins