diff --git a/ide/buildmodesmanager.pas b/ide/buildmodesmanager.pas index 7a23311cfe..b57892118b 100644 --- a/ide/buildmodesmanager.pas +++ b/ide/buildmodesmanager.pas @@ -70,7 +70,7 @@ var OnLoadIDEOptionsHook: TOnLoadIDEOptions; OnSaveIDEOptionsHook: TOnSaveIDEOptions; -function ShowBuildModesDlg(frm: TBuildModesForm): TModalResult; +function ShowBuildModesDlg: TModalResult; procedure SwitchBuildMode(aBuildModeID: string); procedure UpdateBuildModeCombo(aCombo: TComboBox); @@ -79,26 +79,33 @@ implementation {$R *.lfm} -function ShowBuildModesDlg(frm: TBuildModesForm): TModalResult; +function ShowBuildModesDlg: TModalResult; +var + frm: TBuildModesForm; begin - Assert(Assigned(Project1), 'ShowBuildModesDlg: Project is not assigned.'); - // Save changes - OnSaveIDEOptionsHook(Nil, Project1.CompilerOptions); - // Copy to dialog - frm.fBuildModes.Assign(Project1.BuildModes, True); - frm.SetActiveBuildModeByID(Project1.ActiveBuildMode); - frm.ShowSession:=Project1.SessionStorage in [pssInProjectDir,pssInIDEConfig]; - // Show the form. Let user add / edit / delete. - Result := frm.ShowModal; - if Result = mrOk then - begin - // Copy back from dialog - Project1.BuildModes.Assign(frm.fBuildModes, True); - // Switch - Project1.ActiveBuildModeID:=frm.fActiveBuildMode.Identifier; - IncreaseBuildMacroChangeStamp; - // Load options - OnLoadIDEOptionsHook(Nil, Project1.CompilerOptions); + frm := TBuildModesForm.Create(nil); + try + Assert(Assigned(Project1), 'ShowBuildModesDlg: Project is not assigned.'); + // Save changes + OnSaveIDEOptionsHook(Nil, Project1.CompilerOptions); + // Copy to dialog + frm.fBuildModes.Assign(Project1.BuildModes, True); + frm.SetActiveBuildModeByID(Project1.ActiveBuildMode); + frm.fShowSession:=Project1.SessionStorage in [pssInProjectDir,pssInIDEConfig]; + // Show the form. Let user add / edit / delete. + Result := frm.ShowModal; + if Result = mrOk then + begin + // Copy back from dialog + Project1.BuildModes.Assign(frm.fBuildModes, True); + // Switch + Project1.ActiveBuildModeID:=frm.fActiveBuildMode.Identifier; + IncreaseBuildMacroChangeStamp; + // Load options + OnLoadIDEOptionsHook(Nil, Project1.CompilerOptions); + end; + finally + frm.Free; end; end; diff --git a/ide/ideoptionsdlg.pas b/ide/ideoptionsdlg.pas index 39ed266c83..fd0f49fde0 100644 --- a/ide/ideoptionsdlg.pas +++ b/ide/ideoptionsdlg.pas @@ -35,7 +35,7 @@ uses TreeFilterEdit, IDEWindowIntf, IDEOptionsIntf, IDECommands, IDEHelpIntf, EnvironmentOpts, LazarusIDEStrConsts, CompOptsIntf, EditorOptions, {$IFDEF NewBuildModeWindow} - BuildModesManager, project_save_options; + BuildModesManager; //project_save_options; {$ELSE} BuildModesEditor; {$ENDIF} @@ -154,6 +154,8 @@ begin if (CategoryTree.Selected<>nil) and (CategoryTree.Selected.Parent<>nil) then CategoryTree.TopItem:=CategoryTree.Selected.Parent; {$IFDEF NewBuildModeWindow} + BuildModesManager.OnLoadIDEOptionsHook := @LoadIDEOptions; + BuildModesManager.OnSaveIDEOptionsHook := @SaveIDEOptions; UpdateBuildModeCombo(BuildModeComboBox); {$ENDIF} end; @@ -240,22 +242,10 @@ begin end; procedure TIDEOptionsDialog.BuildModeManageButtonClick(Sender: TObject); -{$IFDEF NewBuildModeWindow} -var - frm: TBuildModesForm; -{$ENDIF} begin {$IFDEF NewBuildModeWindow} - BuildModesManager.OnLoadIDEOptionsHook := @LoadIDEOptions; - BuildModesManager.OnSaveIDEOptionsHook := @SaveIDEOptions; - frm := TBuildModesForm.Create(nil); - try - if ShowBuildModesDlg(frm) = mrOK then begin - UpdateBuildModeCombo(BuildModeComboBox); - end; - finally - frm.Free; - end; + if ShowBuildModesDlg = mrOK then + UpdateBuildModeCombo(BuildModeComboBox); {$ENDIF} end;