Răsfoiți Sursa

Finish wizard version. Also fix form front of the registry and file designer + fix a typo.

Martijn Laan 1 an în urmă
părinte
comite
2978e05192

+ 5 - 0
Projects/Src/CompFilesDesigner.pas

@@ -44,8 +44,13 @@ implementation
 
 {$R *.dfm}
 
+uses
+  CompFunc;
+
 procedure TFilesDesignerForm.FormCreate(Sender: TObject);
 begin
+  InitFormFont(Self);
+
   FFilesHelper := TWizardFormFilesHelper.Create(Self,
     NotCreateAppDirCheck, AppFilesListBox, AppFilesAddButton, AppFilesAddDirButton,
     AppFilesEditButton, AppFilesRemoveButton);

+ 3 - 3
Projects/Src/CompForm.pas

@@ -3090,11 +3090,11 @@ begin
     var PrivilegesRequiredOverridesAllowed := FindSetupDirectiveValue('PrivilegesRequiredOverridesAllowed', '');
     if PrivilegesRequiredOverridesAllowed = '' then begin
       if SameText(PrivilegesRequired, 'admin') then
-        RegistryDesignerForm.PriviligesRequired := prAdmin
+        RegistryDesignerForm.PrivilegesRequired := prAdmin
       else
-        RegistryDesignerForm.PriviligesRequired := prLowest
+        RegistryDesignerForm.PrivilegesRequired := prLowest
     end else
-      RegistryDesignerForm.PriviligesRequired := prDynamic;
+      RegistryDesignerForm.PrivilegesRequired := prDynamic;
     if RegistryDesignerForm.ShowModal = mrOk then
     begin
       FActiveMemo.CaretColumn := 0;

+ 10 - 10
Projects/Src/CompRegistryDesigner.dfm

@@ -55,7 +55,7 @@ object RegistryDesignerForm: TRegistryDesignerForm
       TabOrder = 1
       ExplicitLeft = 410
     end
-    object PriviligesRequiredLabel: TNewStaticText
+    object PrivilegesRequiredLabel: TNewStaticText
       Left = 8
       Top = 15
       Width = 8
@@ -91,7 +91,7 @@ object RegistryDesignerForm: TRegistryDesignerForm
     Caption = '&Browse...'
     TabOrder = 2
   end
-  object st_Settings: TNewStaticText
+  object AppRegistrySettingsLabel: TNewStaticText
     Left = 8
     Top = 69
     Width = 392
@@ -100,7 +100,7 @@ object RegistryDesignerForm: TRegistryDesignerForm
     Caption = 'Settings (for all keys and values):'
     TabOrder = 3
   end
-  object UninsDeleteKeyCheck: TCheckBox
+  object AppRegistryUninsDeleteKeyCheck: TCheckBox
     Left = 16
     Top = 109
     Width = 225
@@ -108,7 +108,7 @@ object RegistryDesignerForm: TRegistryDesignerForm
     Caption = 'Also delete keys which are not empty'
     TabOrder = 5
   end
-  object UninsDeleteKeyCheckIfEmpty: TCheckBox
+  object AppRegistryUninsDeleteKeyIfEmptyCheck: TCheckBox
     Left = 8
     Top = 89
     Width = 225
@@ -118,7 +118,7 @@ object RegistryDesignerForm: TRegistryDesignerForm
     State = cbChecked
     TabOrder = 4
   end
-  object UninsDeleteValueCheck: TCheckBox
+  object AppRegistryUninsDeleteValueCheck: TCheckBox
     Left = 8
     Top = 139
     Width = 225
@@ -129,18 +129,18 @@ object RegistryDesignerForm: TRegistryDesignerForm
     TabOrder = 6
     WordWrap = True
   end
-  object MinVerCheck: TCheckBox
+  object AppRegistryMinVerCheck: TCheckBox
     Left = 8
     Top = 169
-    Width = 225
+    Width = 245
     Height = 17
     Caption = 'Create only if Windows'#39' version is at least:'
     TabOrder = 7
   end
-  object MinVerEdit: TEdit
-    Left = 239
+  object AppRegistryMinVerEdit: TEdit
+    Left = 259
     Top = 168
-    Width = 160
+    Width = 140
     Height = 21
     Enabled = False
     TabOrder = 8

+ 16 - 11
Projects/Src/CompRegistryDesigner.pas

@@ -27,22 +27,22 @@ type
     AppRegistryFileLabel: TNewStaticText;
     AppRegistryFileEdit: TEdit;
     AppRegistryFileButton: TButton;
-    st_Settings: TNewStaticText;
+    AppRegistrySettingsLabel: TNewStaticText;
     AppRegistryUninsDeleteKeyCheck: TCheckBox;
-    AppRegistryUninsDeleteKeyCheckIfEmpty: TCheckBox;
+    AppRegistryUninsDeleteKeyIfEmptyCheck: TCheckBox;
     AppRegistryUninsDeleteValueCheck: TCheckBox;
     AppRegistryMinVerCheck: TCheckBox;
     AppRegistryMinVerEdit: TEdit;
-    PriviligesRequiredLabel: TNewStaticText;
+    PrivilegesRequiredLabel: TNewStaticText;
     procedure InsertButtonClick(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
   private
     FRegistryHelper: TWizardFormRegistryHelper;
-    procedure SetPriviligesRequired(const Value: TPriviligesRequired);
+    procedure SetPrivilegesRequired(const Value: TPrivilegesRequired);
     function GetText: String;
   public
-    property PriviligesRequired: TPriviligesRequired write SetPriviligesRequired;
+    property PrivilegesRequired: TPrivilegesRequired write SetPrivilegesRequired;
     property Text: string read GetText;
   end;
 
@@ -50,22 +50,27 @@ implementation
 
 {$R *.dfm}
 
-procedure TRegistryDesignerForm.SetPriviligesRequired(
-  const Value: TPriviligesRequired);
+uses
+  CompFunc;
+
+procedure TRegistryDesignerForm.SetPrivilegesRequired(
+  const Value: TPrivilegesRequired);
 begin
   if Value = prAdmin then
-    PriviligesRequiredLabel.Caption := 'Script has PriviligesRequired=admin'
+    PrivilegesRequiredLabel.Caption := 'Script has PrivilegesRequired=admin'
   else if Value = prLowest then
-    PriviligesRequiredLabel.Caption := 'Script has PriviligesRequired=lowest'
+    PrivilegesRequiredLabel.Caption := 'Script has PrivilegesRequired=lowest'
   else
-    PriviligesRequiredLabel.Caption := 'Script has PrivilegesRequiredOverridesAllowed set';
+    PrivilegesRequiredLabel.Caption := 'Script has PrivilegesRequiredOverridesAllowed set';
 end;
 
 procedure TRegistryDesignerForm.FormCreate(Sender: TObject);
 begin
+  InitFormFont(Self);
+
   FRegistryHelper := TWizardFormRegistryHelper.Create(Self, AppRegistryFileEdit,
     AppRegistryFileButton, AppRegistryUninsDeleteKeyCheck,
-    AppRegistryUninsDeleteKeyCheckIfEmpty, AppRegistryUninsDeleteValueCheck,
+    AppRegistryUninsDeleteKeyIfEmptyCheck, AppRegistryUninsDeleteValueCheck,
     AppRegistryMinVerCheck, AppRegistryMinVerEdit);
 end;
 

+ 55 - 0
Projects/Src/CompWizard.dfm

@@ -929,6 +929,61 @@ object WizardForm: TWizardForm
             Caption = 'B&rowse...'
             TabOrder = 2
           end
+          object AppRegistrySettingsLabel: TNewStaticText
+            Left = 36
+            Top = 60
+            Width = 392
+            Height = 230
+            Anchors = [akLeft, akTop, akRight]
+            Caption = 'Settings (for all keys and values):'
+            TabOrder = 3
+          end
+          object AppRegistryUninsDeleteKeyCheck: TCheckBox
+            Left = 44
+            Top = 100
+            Width = 225
+            Height = 17
+            Caption = 'Also delete keys which are not empty'
+            TabOrder = 5
+          end
+          object AppRegistryUninsDeleteKeyIfEmptyCheck: TCheckBox
+            Left = 36
+            Top = 80
+            Width = 225
+            Height = 17
+            Caption = 'Delete keys which are empty on uninstall'
+            Checked = True
+            State = cbChecked
+            TabOrder = 4
+          end
+          object AppRegistryUninsDeleteValueCheck: TCheckBox
+            Left = 36
+            Top = 130
+            Width = 225
+            Height = 17
+            Caption = 'Delete values on uninstall'
+            Checked = True
+            State = cbChecked
+            TabOrder = 6
+            WordWrap = True
+          end
+          object AppRegistryMinVerCheck: TCheckBox
+            Left = 36
+            Top = 160
+            Width = 245
+            Height = 17
+            Caption = 'Create only if Windows'#39' version is at least:'
+            TabOrder = 7
+          end
+          object AppRegistryMinVerEdit: TEdit
+            Left = 287
+            Top = 159
+            Width = 140
+            Height = 21
+            Enabled = False
+            TabOrder = 8
+            Text = '6.2'
+          end
         end
         object LanguagesPage: TNewNotebookPage
           DesignSize = (

+ 23 - 2
Projects/Src/CompWizard.pas

@@ -14,7 +14,7 @@ interface
 uses
   Windows, Forms, Classes, Graphics, StdCtrls, ExtCtrls, Controls, Dialogs, pngimage,
   UIStateForm, NewStaticText, DropListBox, NewCheckListBox, NewNotebook,
-  CompWizardFilesHelper;
+  CompWizardFilesHelper, CompWizardRegistryHelper;
 
 type
   TWizardPage = (wpWelcome, wpAppInfo, wpAppDir, wpAppFiles, wpAppAssoc, wpAppIcons,
@@ -133,6 +133,12 @@ type
     AppRegistryFileLabel: TNewStaticText;
     AppRegistryFileEdit: TEdit;
     AppRegistryFileButton: TButton;
+    AppRegistrySettingsLabel: TNewStaticText;
+    AppRegistryUninsDeleteKeyCheck: TCheckBox;
+    AppRegistryUninsDeleteKeyIfEmptyCheck: TCheckBox;
+    AppRegistryUninsDeleteValueCheck: TCheckBox;
+    AppRegistryMinVerCheck: TCheckBox;
+    AppRegistryMinVerEdit: TEdit;
     procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -156,6 +162,7 @@ type
     CurPage: TWizardPage;
     FWizardName: String;
     FFilesHelper: TWizardFormFilesHelper;
+    FRegistryHelper: TWizardFormRegistryHelper;
     FLanguages: TStringList;
     FResult: TWizardFormResult;
     FResultScript: String;
@@ -279,6 +286,10 @@ begin
   FFilesHelper := TWizardFormFilesHelper.Create(Self,
     NotCreateAppDirCheck, AppFilesListBox, AppFilesAddButton, AppFilesAddDirButton,
     AppFilesEditButton, AppFilesRemoveButton);
+  FRegistryHelper := TWizardFormRegistryHelper.Create(Self, AppRegistryFileEdit,
+    AppRegistryFileButton, AppRegistryUninsDeleteKeyCheck,
+    AppRegistryUninsDeleteKeyIfEmptyCheck, AppRegistryUninsDeleteValueCheck,
+    AppRegistryMinVerCheck, AppRegistryMinVerEdit);
 
   FLanguages := TStringList.Create;
   FLanguages.Sorted := True;
@@ -393,6 +404,7 @@ end;
 procedure TWizardForm.FormDestroy(Sender: TObject);
 begin
   FLanguages.Free;
+  FRegistryHelper.Free;
   FFilesHelper.Free;
 end;
 
@@ -452,7 +464,7 @@ begin
         else
           ActiveControl := PrivilegesRequiredLowestRadioButton;
       end;
-    wpAppRegistry: ;
+    wpAppRegistry: ActiveControl := AppRegistryFileEdit;
     wpLanguages: ActiveControl := LanguagesList;
     wpCompiler: ActiveControl := OutputDirEdit;
     wpISPP: ActiveControl := ISPPCheck;
@@ -555,6 +567,14 @@ begin
     if CurPage = wpAppAssoc then begin
       if (AppAssocExtEdit.Text <> '') and (AppAssocExtEdit.Text[1] <> '.') then
         AppAssocExtEdit.Text := '.' + AppAssocExtEdit.Text;
+    end else if CurPage = wpPrivilegesRequired then begin
+      if not PrivilegesRequiredOverridesAllowedCommandLineCheckbox.Checked then begin
+        if PrivilegesRequiredAdminRadioButton.Checked then
+          FRegistryHelper.PrivilegesRequired := prAdmin
+        else
+          FRegistryHelper.PrivilegesRequired := prLowest
+      end else
+        FRegistryHelper.PrivilegesRequired := prDynamic;
     end else if CurPage = wpFinished then begin
       GenerateScript;
       ModalResult := mrOk;
@@ -960,6 +980,7 @@ begin
       Setup := Setup + 'PrivilegesRequiredOverridesAllowed=commandline' + SNewLine;
       
     { AppRegistry }
+    FRegistryHelper.AddScript(Registry);
 
     { Languages }
     if FLanguages.Count > 1 then begin

+ 20 - 20
Projects/Src/CompWizardRegistryHelper.pas

@@ -15,27 +15,27 @@ uses
   Forms, StdCtrls;
 
 type
-  TPriviligesRequired = (prAdmin, prLowest, prDynamic);
+  TPrivilegesRequired = (prAdmin, prLowest, prDynamic);
 
   TWizardFormRegistryHelper = class
     private
       FForm: TForm;
       FFileEdit: TEdit;
-      FUninsDeleteKeyCheck, FUninsDeleteKeyCheckIfEmpty,
+      FUninsDeleteKeyCheck, FUninsDeleteKeyIfEmptyCheck,
       FUninsDeleteValueCheck, FMinVerCheck: TCheckBox;
       FMinVerEdit: TEdit;
-      FPriviligesRequired: TPriviligesRequired;
-      procedure SetPriviligesRequired(const Value: TPriviligesRequired);
+      FPrivilegesRequired: TPrivilegesRequired;
+      procedure SetPrivilegesRequired(const Value: TPrivilegesRequired);
       procedure FileButtonClick(Sender: TObject);
-      procedure UninsDeleteKeyCheckIfEmptyClick(Sender: TObject);
+      procedure UninsDeleteKeyIfEmptyCheckClick(Sender: TObject);
       procedure MinVerCheckClick(Sender: TObject);
     public
       constructor Create(const Form: TForm; const FileEdit: TEdit;
         const FileButton: TButton; const UninsDeleteKeyCheck,
-        UninsDeleteKeyCheckIfEmpty, UninsDeleteValueCheck, MinVerCheck: TCheckBox;
+        UninsDeleteKeyIfEmptyCheck, UninsDeleteValueCheck, MinVerCheck: TCheckBox;
         const MinVerEdit: TEdit);
       procedure AddScript(var Registry: String);
-      property PriviligesRequired: TPriviligesRequired write SetPriviligesRequired;
+      property PrivilegesRequired: TPrivilegesRequired write SetPrivilegesRequired;
     end;
 
 implementation
@@ -46,27 +46,27 @@ uses
 
 { TWizardFormRegistryHelper }
 
-procedure TWizardFormRegistryHelper.SetPriviligesRequired(
-  const Value: TPriviligesRequired);
+procedure TWizardFormRegistryHelper.SetPrivilegesRequired(
+  const Value: TPrivilegesRequired);
 begin
-  FPriviligesRequired := Value;
+  FPrivilegesRequired := Value;
 end;
 
 constructor TWizardFormRegistryHelper.Create(const Form: TForm;
   const FileEdit: TEdit; const FileButton: TButton; const UninsDeleteKeyCheck,
-  UninsDeleteKeyCheckIfEmpty, UninsDeleteValueCheck, MinVerCheck: TCheckBox;
+  UninsDeleteKeyIfEmptyCheck, UninsDeleteValueCheck, MinVerCheck: TCheckBox;
   const MinVerEdit: TEdit);
 begin
   FForm := Form;
   FFileEdit := FileEdit;
   FUninsDeleteKeyCheck := UninsDeleteKeyCheck;
-  FUninsDeleteKeyCheckIfEmpty := UninsDeleteKeyCheckIfEmpty;
+  FUninsDeleteKeyIfEmptyCheck := UninsDeleteKeyIfEmptyCheck;
   FUninsDeleteValueCheck := UninsDeleteValueCheck;
   FMinVerCheck := MinVerCheck;
   FMinVerEdit := MinVerEdit;
 
   FileButton.OnClick := FileButtonClick;
-  UninsDeleteKeyCheckIfEmpty.OnClick := UninsDeleteKeyCheckIfEmptyClick;
+  UninsDeleteKeyIfEmptyCheck.OnClick := UninsDeleteKeyIfEmptyCheckClick;
   MinVerCheck.OnClick := MinVerCheckClick;
 
   TryEnableAutoCompleteFileSystem(FileEdit.Handle);
@@ -79,9 +79,9 @@ begin
     FFileEdit.Text := FileName;
 end;
 
-procedure TWizardFormRegistryHelper.UninsDeleteKeyCheckIfEmptyClick(Sender: TObject);
+procedure TWizardFormRegistryHelper.UninsDeleteKeyIfEmptyCheckClick(Sender: TObject);
 begin
-  FUninsDeleteKeyCheck.Enabled := FUninsDeleteKeyCheckIfEmpty.Checked;
+  FUninsDeleteKeyCheck.Enabled := FUninsDeleteKeyIfEmptyCheck.Checked;
   if not FUninsDeleteKeyCheck.Enabled then
     FUninsDeleteKeyCheck.Checked := False;
 end;
@@ -218,9 +218,9 @@ procedure TWizardFormRegistryHelper.AddScript(var Registry: String);
     Result := '';
     if FMinVerCheck.Checked then
       Result := Result + '; MinVersion: ' + FMinVerEdit.Text;
-    if (FPriviligesRequired <> prAdmin) and RequiresAdminInstallMode(AEntry) then
+    if (FPrivilegesRequired <> prAdmin) and RequiresAdminInstallMode(AEntry) then
       Result := Result + '; Check: IsAdminInstallMode'
-    else if (FPriviligesRequired <> prLowest) and RequiresNotAdminInstallMode(AEntry) then
+    else if (FPrivilegesRequired <> prLowest) and RequiresNotAdminInstallMode(AEntry) then
       Result := Result + '; Check: not IsAdminInstallMode';
   end;
 
@@ -234,7 +234,7 @@ procedure TWizardFormRegistryHelper.AddScript(var Registry: String);
     else begin
       if FUninsDeleteKeyCheck.Checked then
         Result := Result + '; Flags: uninsdeletekey'
-      else if FUninsDeleteKeyCheckIfEmpty.Checked then
+      else if FUninsDeleteKeyIfEmptyCheck.Checked then
         Result := Result + '; Flags: uninsdeletekeyifempty';
     end;
     Result := Result + TextCommon(AEntry);
@@ -309,8 +309,8 @@ begin
                                             .Replace('{', '{{')
                                             .QuotedString('"');
 
-        var FilterKey := ((FPriviligesRequired = prAdmin) and RequiresNotAdminInstallMode(Entry)) or
-                         ((FPriviligesRequired = prLowest) and RequiresAdminInstallMode(Entry));
+        var FilterKey := ((FPrivilegesRequired = prAdmin) and RequiresNotAdminInstallMode(Entry)) or
+                         ((FPrivilegesRequired = prLowest) and RequiresAdminInstallMode(Entry));
 
         if not FilterKey then
           OutLines.Add(TextKeyEntry(Entry, DeleteKey))