IDE: fixed loading dependency list keeping order, bug #10967

git-svn-id: trunk@14489 -
This commit is contained in:
mattias 2008-03-10 16:44:20 +00:00
parent ceb551d1a8
commit b44b0d5c00

View File

@ -311,6 +311,8 @@ type
function PrevRequiresDependency: TPkgDependency; function PrevRequiresDependency: TPkgDependency;
procedure AddToList(var FirstDependency: TPkgDependency; procedure AddToList(var FirstDependency: TPkgDependency;
ListType: TPkgDependencyList); ListType: TPkgDependencyList);
procedure AddToEndOfList(var LastDependency: TPkgDependency;
ListType: TPkgDependencyList);
procedure RemoveFromList(var FirstDependency: TPkgDependency; procedure RemoveFromList(var FirstDependency: TPkgDependency;
ListType: TPkgDependencyList); ListType: TPkgDependencyList);
procedure MoveUpInList(var FirstDependency: TPkgDependency; procedure MoveUpInList(var FirstDependency: TPkgDependency;
@ -985,6 +987,7 @@ var
NewCount: Integer; NewCount: Integer;
List: TFPList; List: TFPList;
FileVersion: Integer; FileVersion: Integer;
Last: TPkgDependency;
begin begin
FileVersion:=XMLConfig.GetValue(ThePath+'Version',0); FileVersion:=XMLConfig.GetValue(ThePath+'Version',0);
NewCount:=XMLConfig.GetValue(ThePath+'Count',0); NewCount:=XMLConfig.GetValue(ThePath+'Count',0);
@ -1001,9 +1004,15 @@ begin
end; end;
if SortList then if SortList then
SortDependencyList(List); SortDependencyList(List);
Last:=First;
if Last<>nil then
while Last.NextDependency[ListType]<>nil do
Last:=Last.NextDependency[ListType];
for i:=0 to List.Count-1 do begin for i:=0 to List.Count-1 do begin
TPkgDependency(List[i]).AddToList(First,ListType); TPkgDependency(List[i]).AddToEndOfList(Last,ListType);
TPkgDependency(List[i]).Owner:=Owner; if First=nil then
First:=Last;
PkgDependency.Owner:=Owner;
end; end;
List.Free; List.Free;
end; end;
@ -1856,6 +1865,16 @@ begin
NextDependency[ListType].PrevDependency[ListType]:=Self; NextDependency[ListType].PrevDependency[ListType]:=Self;
end; end;
procedure TPkgDependency.AddToEndOfList(var LastDependency: TPkgDependency;
ListType: TPkgDependencyList);
begin
PrevDependency[ListType]:=LastDependency;
LastDependency:=Self;
NextDependency[ListType]:=nil;
if PrevDependency[ListType]<>nil then
PrevDependency[ListType].NextDependency[ListType]:=Self;
end;
procedure TPkgDependency.RemoveFromList(var FirstDependency: TPkgDependency; procedure TPkgDependency.RemoveFromList(var FirstDependency: TPkgDependency;
ListType: TPkgDependencyList); ListType: TPkgDependencyList);
begin begin