Opkman: When available, auto load package data.

git-svn-id: trunk@64129 -
This commit is contained in:
balazs 2020-11-12 14:33:12 +00:00
parent 43e81576fe
commit 35da6a1fbb

View File

@ -452,6 +452,40 @@ procedure TCreateRepositoryPackagesFrm.edPackageDirAcceptDirectory(
Sender: TObject; Var Value: String);
var
PackageList: TStringList;
procedure GetData(ARootData: PData);
var
I: Integer;
ct4laz_name: String;
begin
ARootData^.FCategory := '';
ARootData^.FDisplayName := '';
ARootData^.FHomePageURL := '';
ARootData^.FDownloadURL := '';
ARootData^.FSVNURL := '';
ARootData^.FCommunityDescription := '';
ARootData^.FExternalDependencies := '';
ARootData^.FDataType := 0;
if ARootData^.FName = 'ct4laz' then
ct4laz_name := ExtractFileName(TPackageData(PackageList.Objects[0]).FPackageRelativePath);
for I := 0 to SerializablePackages.Count - 1 do
begin
if (SerializablePackages.Items[I].Name = ARootData^.FName) or ((ARootData^.FName = 'ct4laz') and (SerializablePackages.Items[I].Name = ct4laz_name)) then
begin
ARootData^.FCategory := SerializablePackages.Items[I].Category;
ARootData^.FDisplayName := SerializablePackages.Items[I].DisplayName;
ARootData^.FHomePageURL := SerializablePackages.Items[I].HomePageURL;
ARootData^.FDownloadURL := SerializablePackages.Items[I].DownloadURL;
ARootData^.FSVNURL := SerializablePackages.Items[I].SVNURL;
ARootData^.FCommunityDescription := SerializablePackages.Items[I].CommunityDescription;
ARootData^.FExternalDependencies := SerializablePackages.Items[I].ExternalDependecies;
ARootData^.FOrphanedPackage := SerializablePackages.Items[I].OrphanedPackage;
Break;
end;
end;
end;
var
I: Integer;
Node, RootNode: PVirtualNode;
Data, RootData: PData;
@ -475,21 +509,16 @@ begin
FVSTPackageData.NodeDataSize := SizeOf(TData);
RootNode := FVSTPackages.AddChild(nil);
RootNode^.CheckType := ctTriStateCheckBox;
RootNode^.CheckState := csCheckedNormal;
RootData := FVSTPackages.GetNodeData(RootNode);
RootData^.FName := TPackageData(PackageList.Objects[0]).FPackageBaseDir;
RootData^.FCategory := '';
RootData^.FDisplayName := '';
RootData^.FHomePageURL := '';
RootData^.FDownloadURL := '';
RootData^.FSVNURL := '';
RootData^.FCommunityDescription := '';
RootData^.FExternalDependencies := '';
RootData^.FDataType := 0;
GetData(RootData);
FPackageName := RootData^.FName;
for I := 0 to PackageList.Count - 1 do
begin
Node := FVSTPackages.AddChild(RootNode);
Node^.CheckType := ctTriStateCheckBox;
Node^.CheckState := csCheckedNormal;
Data := FVSTPackages.GetNodeData(Node);
Data^.FName := TPackageData(PackageList.Objects[I]).FName;
Data^.FPackageBaseDir := TPackageData(PackageList.Objects[I]).FPackageBaseDir;
@ -522,9 +551,13 @@ begin
end;
finally
if CanGo then
ShowHideControls(2)
begin
ShowHideControls(2);
EnableDisableControls(True);
end
else
ShowHideControls(0)
ShowHideControls(0);
end;
end;