mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-09 14:40:18 +02:00
TLazPackageLinks.AddUserLink refactoring.
git-svn-id: trunk@54410 -
This commit is contained in:
parent
63819ec9ae
commit
0ee731db97
@ -97,6 +97,8 @@ type
|
|||||||
FSavedChangeStamp: integer;
|
FSavedChangeStamp: integer;
|
||||||
fUpdateLock: integer;
|
fUpdateLock: integer;
|
||||||
FStates: TPkgLinksStates;
|
FStates: TPkgLinksStates;
|
||||||
|
function AddUserLinkSub(APackage: TIDEPackage; const PkgFilename,
|
||||||
|
PkgName: string): TPackageLink;
|
||||||
function FindLeftMostNode(LinkTree: TAvgLvlTree; const PkgName: string): TAvgLvlTreeNode;
|
function FindLeftMostNode(LinkTree: TAvgLvlTree; const PkgName: string): TAvgLvlTreeNode;
|
||||||
function FindLinkWithPkgNameInTree(LinkTree: TAvgLvlTree;
|
function FindLinkWithPkgNameInTree(LinkTree: TAvgLvlTree;
|
||||||
const PkgName: string; IgnoreFiles: TFilenameToStringTree): TLazPackageLink;
|
const PkgName: string; IgnoreFiles: TFilenameToStringTree): TLazPackageLink;
|
||||||
@ -1164,6 +1166,8 @@ end;
|
|||||||
function TLazPackageLinks.AddOnlineLink(const PkgFilename, PkgName: string;
|
function TLazPackageLinks.AddOnlineLink(const PkgFilename, PkgName: string;
|
||||||
PkgVersion: TPkgVersion): TPackageLink;
|
PkgVersion: TPkgVersion): TPackageLink;
|
||||||
begin
|
begin
|
||||||
|
DebugLn(['TLazPackageLinks.AddOnlineLink: PkgFilename=', PkgFilename,
|
||||||
|
', PkgName=', PkgName, ', PkgVersion=', PkgVersion.AsString]);
|
||||||
// check if link already exists
|
// check if link already exists
|
||||||
Result:=FindLinkWithFilename(PkgName,PkgFilename);
|
Result:=FindLinkWithFilename(PkgName,PkgFilename);
|
||||||
if Assigned(Result) then
|
if Assigned(Result) then
|
||||||
@ -1192,11 +1196,35 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TLazPackageLinks.AddUserLinkSub(APackage: TIDEPackage;
|
||||||
|
const PkgFilename, PkgName: string): TPackageLink;
|
||||||
|
begin
|
||||||
|
Result:=TLazPackageLink.Create;
|
||||||
|
Result.Reference;
|
||||||
|
if Assigned(APackage) then
|
||||||
|
Result.AssignID(APackage)
|
||||||
|
else
|
||||||
|
Result.Name:=PkgName;
|
||||||
|
Result.LPKFilename:=PkgFilename;
|
||||||
|
if Result.IsMakingSense then
|
||||||
|
begin
|
||||||
|
FUserLinksSortID.Add(Result);
|
||||||
|
FUserLinksSortFile.Add(Result);
|
||||||
|
IncreaseChangeStamp;
|
||||||
|
Result.LastUsed:=Now;
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
Result.Release;
|
||||||
|
Result:=nil;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TLazPackageLinks.AddUserLink(APackage: TIDEPackage): TPackageLink;
|
function TLazPackageLinks.AddUserLink(APackage: TIDEPackage): TPackageLink;
|
||||||
var
|
var
|
||||||
OldLink: TPackageLink;
|
OldLink: TPackageLink;
|
||||||
NewLink: TPackageLink;
|
NewLink: TPackageLink;
|
||||||
begin
|
begin
|
||||||
|
DebugLn(['TLazPackageLinks.AddUserLink: APackage=', APackage.Filename]);
|
||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
try
|
try
|
||||||
// check if link already exists
|
// check if link already exists
|
||||||
@ -1213,20 +1241,7 @@ begin
|
|||||||
RemoveUserLinks(APackage);
|
RemoveUserLinks(APackage);
|
||||||
end;
|
end;
|
||||||
// add user link
|
// add user link
|
||||||
NewLink:=TLazPackageLink.Create;
|
Result := AddUserLinkSub(APackage, APackage.Filename, '');
|
||||||
NewLink.Reference;
|
|
||||||
NewLink.AssignID(APackage);
|
|
||||||
NewLink.LPKFilename:=APackage.Filename;
|
|
||||||
if NewLink.IsMakingSense then begin
|
|
||||||
FUserLinksSortID.Add(NewLink);
|
|
||||||
FUserLinksSortFile.Add(NewLink);
|
|
||||||
IncreaseChangeStamp;
|
|
||||||
end else begin
|
|
||||||
NewLink.Release;
|
|
||||||
NewLink:=nil;
|
|
||||||
end;
|
|
||||||
Result:=NewLink;
|
|
||||||
Result.LastUsed:=Now;
|
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
@ -1234,11 +1249,11 @@ end;
|
|||||||
|
|
||||||
function TLazPackageLinks.AddUserLink(const PkgFilename, PkgName: string): TPackageLink;
|
function TLazPackageLinks.AddUserLink(const PkgFilename, PkgName: string): TPackageLink;
|
||||||
var
|
var
|
||||||
OldLink: TPackageLink;
|
|
||||||
NewLink: TPackageLink;
|
NewLink: TPackageLink;
|
||||||
LPK: TXMLConfig;
|
LPK: TXMLConfig;
|
||||||
PkgVersion: TPkgVersion;
|
PkgVersion: TPkgVersion;
|
||||||
begin
|
begin
|
||||||
|
DebugLn(['TLazPackageLinks.AddUserLink: PkgFilename=', PkgFilename, ', PkgName=', PkgName]);
|
||||||
PkgVersion:=TPkgVersion.Create;
|
PkgVersion:=TPkgVersion.Create;
|
||||||
LPK:=nil;
|
LPK:=nil;
|
||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
@ -1249,34 +1264,18 @@ begin
|
|||||||
PkgVersionLoadFromXMLConfig(PkgVersion,LPK);
|
PkgVersionLoadFromXMLConfig(PkgVersion,LPK);
|
||||||
|
|
||||||
// check if link already exists
|
// check if link already exists
|
||||||
OldLink:=FindLinkWithFilename(PkgName,PkgFilename);
|
Result:=FindLinkWithFilename(PkgName,PkgFilename);
|
||||||
if (OldLink<>nil) then begin
|
if Assigned(Result) then
|
||||||
// link exists
|
begin
|
||||||
Result:=OldLink;
|
|
||||||
Result.LastUsed:=Now;
|
Result.LastUsed:=Now;
|
||||||
if LPK<>nil then
|
if LPK<>nil then
|
||||||
Result.Version.Assign(PkgVersion);
|
Result.Version.Assign(PkgVersion);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
// add user link
|
// add user link
|
||||||
NewLink:=TLazPackageLink.Create;
|
Result := AddUserLinkSub(Nil, PkgFilename, PkgName);
|
||||||
NewLink.Reference;
|
if Assigned(Result) and Assigned(LPK) then
|
||||||
NewLink.Name:=PkgName;
|
Result.Version.Assign(PkgVersion);
|
||||||
NewLink.LPKFilename:=PkgFilename;
|
|
||||||
if LPK<>nil then
|
|
||||||
NewLink.Version.Assign(PkgVersion);
|
|
||||||
if NewLink.IsMakingSense then begin
|
|
||||||
FUserLinksSortID.Add(NewLink);
|
|
||||||
FUserLinksSortFile.Add(NewLink);
|
|
||||||
IncreaseChangeStamp;
|
|
||||||
end else begin
|
|
||||||
NewLink.Release;
|
|
||||||
NewLink:=nil;
|
|
||||||
end;
|
|
||||||
Result:=NewLink;
|
|
||||||
if Result<>nil then
|
|
||||||
Result.LastUsed:=Now;
|
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
PkgVersion.Free;
|
PkgVersion.Free;
|
||||||
|
Loading…
Reference in New Issue
Block a user