IDE: Sort Required Packages in Package Manager and Project Manager, issue #20862

git-svn-id: trunk@34533 -
This commit is contained in:
juha 2012-01-01 15:05:17 +00:00
parent f1899978ae
commit 7c15632972
2 changed files with 50 additions and 66 deletions

View File

@ -607,12 +607,20 @@ end;
function TProjectInspectorForm.ChooseImageIndex(Str: String; Data: TObject; function TProjectInspectorForm.ChooseImageIndex(Str: String; Data: TObject;
var AIsEnabled: Boolean): Integer; var AIsEnabled: Boolean): Integer;
begin begin
if FilenameIsPascalUnit((Data as TUnitInfo).Filename) then if Data is TUnitInfo then begin
Result:=ImageIndexUnit if FilenameIsPascalUnit(TUnitInfo(Data).Filename) then
else if (LazProject<>nil) and (LazProject.MainUnitinfo=Data) then Result:=ImageIndexUnit
Result:=ImageIndexProject else if (LazProject<>nil) and (LazProject.MainUnitinfo=Data) then
else Result:=ImageIndexProject
Result:=ImageIndexText; else
Result:=ImageIndexText;
end
else if Data is TPkgDependency then begin
if TPkgDependency(Data).LoadPackageResult=lprSuccess then
Result:=ImageIndexRequired
else
Result:=ImageIndexConflict;
end;
end; end;
procedure TProjectInspectorForm.UpdateProjectFiles(Immediately: boolean); procedure TProjectInspectorForm.UpdateProjectFiles(Immediately: boolean);
@ -650,11 +658,11 @@ var
NodeText, AFilename: String; NodeText, AFilename: String;
CurNode: TTreeNode; CurNode: TTreeNode;
NextNode: TTreeNode; NextNode: TTreeNode;
FilteredBranch: TBranch;
begin begin
ItemsTreeView.BeginUpdate; FilteredBranch := FilterEdit.GetBranch(DependenciesNode);
if LazProject<>nil then begin if LazProject<>nil then begin
Dependency:=LazProject.FirstRequiredDependency; Dependency:=LazProject.FirstRequiredDependency;
CurNode:=DependenciesNode.GetFirstChild;
while Dependency<>nil do begin while Dependency<>nil do begin
NodeText:=Dependency.AsString; NodeText:=Dependency.AsString;
if Dependency.DefaultFilename<>'' then begin if Dependency.DefaultFilename<>'' then begin
@ -664,29 +672,13 @@ begin
else else
NodeText:=Format(lisPckEditDefault, [NodeText, AFilename]); NodeText:=Format(lisPckEditDefault, [NodeText, AFilename]);
end; end;
if CurNode=nil then FilteredBranch.AddNodeData(NodeText, Dependency);
CurNode:=ItemsTreeView.Items.AddChild(DependenciesNode,NodeText)
else
CurNode.Text:=NodeText;
if Dependency.LoadPackageResult=lprSuccess then
CurNode.ImageIndex:=ImageIndexRequired
else
CurNode.ImageIndex:=ImageIndexConflict;
CurNode.SelectedIndex:=CurNode.ImageIndex;
Dependency:=Dependency.NextRequiresDependency; Dependency:=Dependency.NextRequiresDependency;
CurNode:=CurNode.GetNextSibling;
end; end;
while CurNode<>nil do begin
NextNode:=CurNode.GetNextSibling;
CurNode.Free;
CurNode:=NextNode;
end;
DependenciesNode.Expanded:=true;
end else begin end else begin
// delete dependency nodes // delete dependency nodes
DependenciesNode.HasChildren:=false; DependenciesNode.HasChildren:=false;
end; end;
ItemsTreeView.EndUpdate;
end; end;
procedure TProjectInspectorForm.UpdateRemovedRequiredPackages; procedure TProjectInspectorForm.UpdateRemovedRequiredPackages;

View File

@ -813,8 +813,7 @@ begin
SetDependencyDefaultFilename(true); SetDependencyDefaultFilename(true);
end; end;
procedure TPackageEditorForm.ClearDependencyFilenameMenuItemClick( procedure TPackageEditorForm.ClearDependencyFilenameMenuItemClick(Sender: TObject);
Sender: TObject);
var var
Removed: boolean; Removed: boolean;
CurDependency: TPkgDependency; CurDependency: TPkgDependency;
@ -1612,20 +1611,28 @@ end;
function TPackageEditorForm.ChooseImageIndex(Str: String; Data: TObject; function TPackageEditorForm.ChooseImageIndex(Str: String; Data: TObject;
var AIsEnabled: Boolean): Integer; var AIsEnabled: Boolean): Integer;
begin begin
case TPkgFile(Data).FileType of if Data is TPkgFile then begin
pftUnit,pftVirtualUnit,pftMainUnit: case TPkgFile(Data).FileType of
if TPkgFile(Data).HasRegisterProc then pftUnit,pftVirtualUnit,pftMainUnit:
Result:=ImageIndexRegisterUnit if TPkgFile(Data).HasRegisterProc then
Result:=ImageIndexRegisterUnit
else
Result:=ImageIndexUnit;
pftLFM: Result:=ImageIndexLFM;
pftLRS: Result:=ImageIndexLRS;
pftInclude: Result:=ImageIndexInclude;
pftIssues: Result:=ImageIndexIssues;
pftText: Result:=ImageIndexText;
pftBinary: Result:=ImageIndexBinary;
else else
Result:=ImageIndexUnit; Result:=-1;
pftLFM: Result:=ImageIndexLFM; end;
pftLRS: Result:=ImageIndexLRS; end
pftInclude: Result:=ImageIndexInclude; else if Data is TPkgDependency then begin
pftIssues: Result:=ImageIndexIssues; if TPkgDependency(Data).LoadPackageResult=lprSuccess then
pftText: Result:=ImageIndexText; Result:=ImageIndexRequired
pftBinary: Result:=ImageIndexBinary;
else else
Result:=-1; Result:=ImageIndexConflict;
end; end;
end; end;
@ -1657,9 +1664,8 @@ begin
// removed files // removed files
if LazPackage.RemovedFilesCount>0 then begin if LazPackage.RemovedFilesCount>0 then begin
if FRemovedFilesNode=nil then begin if FRemovedFilesNode=nil then begin
FRemovedFilesNode:= FRemovedFilesNode:=FilesTreeView.Items.Add(FRequiredPackagesNode,
FilesTreeView.Items.Add(FRequiredPackagesNode, lisPckEditRemovedFilesTheseEntriesAreNotSavedToTheLpkFile);
lisPckEditRemovedFilesTheseEntriesAreNotSavedToTheLpkFile);
FRemovedFilesNode.ImageIndex:=ImageIndexRemovedFiles; FRemovedFilesNode.ImageIndex:=ImageIndexRemovedFiles;
FRemovedFilesNode.SelectedIndex:=FRemovedFilesNode.ImageIndex; FRemovedFilesNode.SelectedIndex:=FRemovedFilesNode.ImageIndex;
end; end;
@ -1669,7 +1675,7 @@ begin
if CurNode=nil then if CurNode=nil then
CurNode:=FilesTreeView.Items.AddChild(FRemovedFilesNode,''); CurNode:=FilesTreeView.Items.AddChild(FRemovedFilesNode,'');
CurFile:=LazPackage.RemovedFiles[i]; CurFile:=LazPackage.RemovedFiles[i];
CurNode.Text:=CurFile.GetShortFilename(true); // SetImageIndex(CurNode,CurFile); CurNode.Text:=CurFile.GetShortFilename(true);
CurNode.ImageIndex:=ChooseImageIndex('', CurFile, ena); CurNode.ImageIndex:=ChooseImageIndex('', CurFile, ena);
CurNode:=CurNode.GetNextSibling; CurNode:=CurNode.GetNextSibling;
end; end;
@ -1689,50 +1695,36 @@ var
CurNode: TTreeNode; CurNode: TTreeNode;
CurDependency: TPkgDependency; CurDependency: TPkgDependency;
NextNode: TTreeNode; NextNode: TTreeNode;
FilteredBranch: TBranch;
CurNodeText, aFilename: String; CurNodeText, aFilename: String;
begin begin
if LazPackage=nil then exit; if LazPackage=nil then exit;
FilesTreeView.BeginUpdate; FilesTreeView.BeginUpdate;
// required packages // required packages
CurNode:=FRequiredPackagesNode.GetFirstChild; FilteredBranch := FilterEdit.GetBranch(FRequiredPackagesNode);
FilterEdit.SelectedPart:=FNextSelectedPart;
CurDependency:=LazPackage.FirstRequiredDependency; CurDependency:=LazPackage.FirstRequiredDependency;
while CurDependency<>nil do begin while CurDependency<>nil do begin
if CurNode=nil then
CurNode:=FilesTreeView.Items.AddChild(FRequiredPackagesNode,'');
CurNodeText:=CurDependency.AsString; CurNodeText:=CurDependency.AsString;
if CurDependency.DefaultFilename<>'' then begin if CurDependency.DefaultFilename<>'' then begin
aFilename:=CurDependency.MakeFilenameRelativeToOwner( aFilename:=CurDependency.MakeFilenameRelativeToOwner(CurDependency.DefaultFilename);
CurDependency.DefaultFilename);
if CurDependency.PreferDefaultFilename then if CurDependency.PreferDefaultFilename then
CurNodeText:=CurNodeText+' in '+aFilename // like the 'in' keyword the uses section CurNodeText:=CurNodeText+' in '+aFilename // like the 'in' keyword in uses section
else else
CurNodeText:=Format(lisPckEditDefault, [CurNodeText, aFilename]); CurNodeText:=Format(lisPckEditDefault, [CurNodeText, aFilename]);
end; end;
CurNode.Text:=CurNodeText; FilteredBranch.AddNodeData(CurNodeText, CurDependency);
if CurDependency.LoadPackageResult=lprSuccess then
CurNode.ImageIndex:=ImageIndexRequired
else
CurNode.ImageIndex:=ImageIndexConflict;
CurNode.Selected:=CurDependency=FNextSelectedPart;
CurNode.SelectedIndex:=CurNode.ImageIndex;
CurNode:=CurNode.GetNextSibling;
CurDependency:=CurDependency.NextRequiresDependency; CurDependency:=CurDependency.NextRequiresDependency;
end; end;
while CurNode<>nil do begin // FRequiredPackagesNode.Expanded:=true;
NextNode:=CurNode.GetNextSibling;
CurNode.Free;
CurNode:=NextNode;
end;
FRequiredPackagesNode.Expanded:=true;
// removed required packages // removed required packages
CurDependency:=LazPackage.FirstRemovedDependency; CurDependency:=LazPackage.FirstRemovedDependency;
if CurDependency<>nil then begin if CurDependency<>nil then begin
if FRemovedRequiredNode=nil then begin if FRemovedRequiredNode=nil then begin
FRemovedRequiredNode:= FRemovedRequiredNode:=FilesTreeView.Items.Add(nil,
FilesTreeView.Items.Add(nil, lisPckEditRemovedRequiredPackagesTheseEntriesAreNotSaved);
lisPckEditRemovedRequiredPackagesTheseEntriesAreNotSaved);
FRemovedRequiredNode.ImageIndex:=ImageIndexRemovedRequired; FRemovedRequiredNode.ImageIndex:=ImageIndexRemovedRequired;
FRemovedRequiredNode.SelectedIndex:=FRemovedRequiredNode.ImageIndex; FRemovedRequiredNode.SelectedIndex:=FRemovedRequiredNode.ImageIndex;
end; end;