IDE: Buildmode window refactoring.

git-svn-id: trunk@40858 -
This commit is contained in:
juha 2013-04-20 15:00:07 +00:00
parent 8bb045419d
commit 88abff51c5
2 changed files with 32 additions and 35 deletions

View File

@ -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;

View File

@ -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;