IDE: build modes diff: do not show current mode in tree

git-svn-id: trunk@41516 -
This commit is contained in:
mattias 2013-06-03 17:29:34 +00:00
parent a4af4b60b0
commit 2eaea5eb94
2 changed files with 24 additions and 23 deletions

View File

@ -46,28 +46,29 @@ type
procedure ModeComboBoxChange(Sender: TObject); procedure ModeComboBoxChange(Sender: TObject);
private private
FBaseMode: TProjectBuildMode; FBaseMode: TProjectBuildMode;
fProject: TProject; FBuildModes: TProjectBuildModes;
procedure FillModeComboBox; procedure FillModeComboBox;
procedure FillDiffTreeView; procedure FillDiffTreeView;
public public
procedure SetBuildMode(aMode: TProjectBuildMode); procedure SetBuildMode(aMode: TProjectBuildMode);
property LazProject: TProject read fProject; property BuildModes: TProjectBuildModes read FBuildModes write FBuildModes;
property BaseMode: TProjectBuildMode read FBaseMode; property BaseMode: TProjectBuildMode read FBaseMode;
end; end;
function ShowBuildModeDiffDialog(AProject: TProject; aMode: TProjectBuildMode): TModalResult; function ShowBuildModeDiffDialog(BuildModes: TProjectBuildModes; aMode: TProjectBuildMode): TModalResult;
procedure AddDiff(MatrixOptions: TBuildMatrixOptions; OldMode, NewMode: string; Diff: TStrings); procedure AddDiff(MatrixOptions: TBuildMatrixOptions; OldMode, NewMode: string; Diff: TStrings);
implementation implementation
function ShowBuildModeDiffDialog(AProject: TProject; aMode: TProjectBuildMode): TModalResult; function ShowBuildModeDiffDialog(BuildModes: TProjectBuildModes;
aMode: TProjectBuildMode): TModalResult;
var var
BuildModeDiffDialog: TBuildModeDiffDialog; BuildModeDiffDialog: TBuildModeDiffDialog;
begin begin
BuildModeDiffDialog:=TBuildModeDiffDialog.Create(nil); BuildModeDiffDialog:=TBuildModeDiffDialog.Create(nil);
try try
BuildModeDiffDialog.fProject:=AProject; BuildModeDiffDialog.BuildModes:=BuildModes;
BuildModeDiffDialog.SetBuildMode(aMode); BuildModeDiffDialog.SetBuildMode(aMode);
Result:=BuildModeDiffDialog.ShowModal; Result:=BuildModeDiffDialog.ShowModal;
finally finally
@ -119,14 +120,14 @@ procedure TBuildModeDiffDialog.ModeComboBoxChange(Sender: TObject);
var var
i: Integer; i: Integer;
begin begin
if fProject<>nil then if BuildModes=nil then exit;
for i:=0 to fProject.BuildModes.Count-1 do for i:=0 to BuildModes.Count-1 do
if UTF8CompareText(fProject.BuildModes[i].GetCaption,ModeComboBox.Text)=0 if UTF8CompareText(BuildModes[i].GetCaption,ModeComboBox.Text)=0
then begin then begin
fBaseMode:=fProject.BuildModes[i]; fBaseMode:=BuildModes[i];
FillDiffTreeView; FillDiffTreeView;
break; break;
end; end;
end; end;
procedure TBuildModeDiffDialog.FillModeComboBox; procedure TBuildModeDiffDialog.FillModeComboBox;
@ -136,9 +137,9 @@ var
begin begin
sl:=TStringList.Create; sl:=TStringList.Create;
try try
if fProject<>nil then if BuildModes<>nil then
for i:=0 to fProject.BuildModes.Count-1 do for i:=0 to BuildModes.Count-1 do
sl.Add(fProject.BuildModes[i].GetCaption); sl.Add(BuildModes[i].GetCaption);
ModeComboBox.Items.Assign(sl); ModeComboBox.Items.Assign(sl);
if BaseMode<>nil then begin if BaseMode<>nil then begin
ModeComboBox.Text:=BaseMode.GetCaption; ModeComboBox.Text:=BaseMode.GetCaption;
@ -162,11 +163,11 @@ var
begin begin
DiffTreeView.BeginUpdate; DiffTreeView.BeginUpdate;
DiffTreeView.Items.Clear; DiffTreeView.Items.Clear;
if fProject<>nil then if BuildModes<>nil then
begin begin
for i := 0 to fProject.BuildModes.Count - 1 do for i := 0 to BuildModes.Count - 1 do
begin begin
CurMode:=fProject.BuildModes[i]; CurMode:=BuildModes[i];
if CurMode=BaseMode then continue; if CurMode=BaseMode then continue;
ModeNode:=DiffTreeView.Items.Add(nil,CurMode.GetCaption); ModeNode:=DiffTreeView.Items.Add(nil,CurMode.GetCaption);
Diff:=TStringList.Create; Diff:=TStringList.Create;
@ -174,9 +175,9 @@ begin
BaseMode.CreateDiff(CurMode,DiffTool); BaseMode.CreateDiff(CurMode,DiffTool);
AddDiff(EnvironmentOptions.BuildMatrixOptions, AddDiff(EnvironmentOptions.BuildMatrixOptions,
CurMode.Identifier,BaseMode.Identifier,Diff); CurMode.Identifier,BaseMode.Identifier,Diff);
AddDiff(fProject.BuildModes.SharedMatrixOptions, AddDiff(BuildModes.SharedMatrixOptions,
CurMode.Identifier,BaseMode.Identifier,Diff); CurMode.Identifier,BaseMode.Identifier,Diff);
AddDiff(fProject.BuildModes.SessionMatrixOptions, AddDiff(BuildModes.SessionMatrixOptions,
CurMode.Identifier,BaseMode.Identifier,Diff); CurMode.Identifier,BaseMode.Identifier,Diff);
for j:=0 to Diff.Count-1 do for j:=0 to Diff.Count-1 do
DiffTreeView.Items.AddChild(ModeNode,Diff[j]); DiffTreeView.Items.AddChild(ModeNode,Diff[j]);
@ -193,7 +194,7 @@ begin
if aMode<>nil then if aMode<>nil then
begin begin
if aMode.LazProject<>nil then if aMode.LazProject<>nil then
fProject:=aMode.LazProject; BuildModes:=aMode.LazProject.BuildModes;
FBaseMode:=aMode; FBaseMode:=aMode;
end else end else
begin begin

View File

@ -213,7 +213,7 @@ end;
procedure TBuildModesForm.BuildModeDiffSpeedButtonClick(Sender: TObject); procedure TBuildModesForm.BuildModeDiffSpeedButtonClick(Sender: TObject);
begin begin
// show diff dialog // show diff dialog
ShowBuildModeDiffDialog(Project1,GetSelectedBuildMode); ShowBuildModeDiffDialog(BuildModes,GetSelectedBuildMode);
end; end;
procedure TBuildModesForm.BuildModeAddSpeedButtonClick(Sender: TObject); procedure TBuildModesForm.BuildModeAddSpeedButtonClick(Sender: TObject);