mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 04:19:09 +02:00
Opkman: Optimization(faster tree) + fixed a small bug on install.
git-svn-id: trunk@53766 -
This commit is contained in:
parent
2773818d1f
commit
4e0a04d655
@ -299,15 +299,18 @@ begin
|
|||||||
DoOnPackageInstallProgress(imPackageCompleted, PackageFile);
|
DoOnPackageInstallProgress(imPackageCompleted, PackageFile);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if (InstallPackageList.Count > 0) and (not FNeedToBreak) then
|
if InstallPackageList.Count > 0 then
|
||||||
begin
|
begin
|
||||||
PkgInstallInIDEFlags := [piiifQuiet];
|
PkgInstallInIDEFlags := [piiifQuiet];
|
||||||
if PackageEditingInterface.InstallPackages(InstallPackageList, PkgInstallInIDEFlags) = mrOk then
|
if PackageEditingInterface.InstallPackages(InstallPackageList, PkgInstallInIDEFlags) = mrOk then
|
||||||
begin
|
begin
|
||||||
if ErrCnt = 0 then
|
if not FNeedToBreak then
|
||||||
FInstallStatus := isSuccess
|
begin
|
||||||
else
|
if ErrCnt = 0 then
|
||||||
FInstallStatus := isPartiallyFailed;
|
FInstallStatus := isSuccess
|
||||||
|
else
|
||||||
|
FInstallStatus := isPartiallyFailed;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if Assigned(FOnPackageInstallCompleted) then
|
if Assigned(FOnPackageInstallCompleted) then
|
||||||
|
@ -707,7 +707,6 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
|
|
||||||
CanGo := True;
|
CanGo := True;
|
||||||
VisualTree.UpdatePackageStates;
|
|
||||||
PackageListFrm := TPackageListFrm.Create(MainFrm);
|
PackageListFrm := TPackageListFrm.Create(MainFrm);
|
||||||
try
|
try
|
||||||
PackageListFrm.lbMessage.Caption := rsMainFrm_PackageAlreadyInstalled;
|
PackageListFrm.lbMessage.Caption := rsMainFrm_PackageAlreadyInstalled;
|
||||||
|
@ -39,6 +39,8 @@ type
|
|||||||
PData = ^TData;
|
PData = ^TData;
|
||||||
TData = record
|
TData = record
|
||||||
DataType: Integer;
|
DataType: Integer;
|
||||||
|
PID: Integer;
|
||||||
|
PFID: Integer;
|
||||||
Repository: String;
|
Repository: String;
|
||||||
PackageState: TPackageState;
|
PackageState: TPackageState;
|
||||||
PackageName: String;
|
PackageName: String;
|
||||||
@ -312,6 +314,7 @@ begin
|
|||||||
Node := FVST.AddChild(RootNode);
|
Node := FVST.AddChild(RootNode);
|
||||||
Node^.CheckType := ctTriStateCheckBox;
|
Node^.CheckType := ctTriStateCheckBox;
|
||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
|
Data^.PID := I;
|
||||||
Data^.PackageName := SerializablePackages.Items[I].Name;
|
Data^.PackageName := SerializablePackages.Items[I].Name;
|
||||||
Data^.PackageDisplayName := SerializablePackages.Items[I].DisplayName;
|
Data^.PackageDisplayName := SerializablePackages.Items[I].DisplayName;
|
||||||
Data^.PackageState := SerializablePackages.Items[I].PackageState;
|
Data^.PackageState := SerializablePackages.Items[I].PackageState;
|
||||||
@ -329,6 +332,8 @@ begin
|
|||||||
ChildNode^.CheckType := ctTriStateCheckBox;
|
ChildNode^.CheckType := ctTriStateCheckBox;
|
||||||
FVST.IsDisabled[ChildNode] := FVST.IsDisabled[ChildNode^.Parent];
|
FVST.IsDisabled[ChildNode] := FVST.IsDisabled[ChildNode^.Parent];
|
||||||
ChildData := FVST.GetNodeData(ChildNode);
|
ChildData := FVST.GetNodeData(ChildNode);
|
||||||
|
ChildData^.PID := I;
|
||||||
|
ChildData^.PFID := J;
|
||||||
ChildData^.PackageFileName := PackageFile.Name;
|
ChildData^.PackageFileName := PackageFile.Name;
|
||||||
ChildData^.InstalledVersion := PackageFile.InstalledFileVersion;
|
ChildData^.InstalledVersion := PackageFile.InstalledFileVersion;
|
||||||
ChildData^.UpdateVersion := PackageFile.UpdateVersion;
|
ChildData^.UpdateVersion := PackageFile.UpdateVersion;
|
||||||
@ -1044,7 +1049,7 @@ begin
|
|||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
if Data^.DataType = 1 then
|
if Data^.DataType = 1 then
|
||||||
begin
|
begin
|
||||||
Package := SerializablePackages.FindPackage(Data^.PackageName, fpbPackageName);
|
Package := SerializablePackages.Items[Data^.PID];
|
||||||
if Package <> nil then
|
if Package <> nil then
|
||||||
begin
|
begin
|
||||||
if (FVST.CheckState[Node] = csCheckedNormal) or (FVST.CheckState[Node] = csMixedNormal) then
|
if (FVST.CheckState[Node] = csCheckedNormal) or (FVST.CheckState[Node] = csMixedNormal) then
|
||||||
@ -1055,7 +1060,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if Data^.DataType = 2 then
|
if Data^.DataType = 2 then
|
||||||
begin
|
begin
|
||||||
PackageFile := SerializablePackages.FindPackageFile(Data^.PackageFileName);
|
PackageFile := TPackageFile(SerializablePackages.Items[Data^.PID].PackageFiles.Items[Data^.PFID]);
|
||||||
if PackageFile <> nil then
|
if PackageFile <> nil then
|
||||||
begin
|
begin
|
||||||
if FVST.CheckState[Node] = csCheckedNormal then
|
if FVST.CheckState[Node] = csCheckedNormal then
|
||||||
@ -1082,7 +1087,7 @@ begin
|
|||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
if (Data^.DataType = 1) then
|
if (Data^.DataType = 1) then
|
||||||
begin
|
begin
|
||||||
Package := SerializablePackages.FindPackage(Data^.PackageName, fpbPackageName);
|
Package := SerializablePackages.Items[Data^.PID];
|
||||||
if Package <> nil then
|
if Package <> nil then
|
||||||
begin
|
begin
|
||||||
Data^.PackageState := Package.PackageState;
|
Data^.PackageState := Package.PackageState;
|
||||||
@ -1093,7 +1098,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if Data^.DataType = 2 then
|
if Data^.DataType = 2 then
|
||||||
begin
|
begin
|
||||||
PackageFile := SerializablePackages.FindPackageFile(Data^.PackageFileName);
|
PackageFile := TPackageFile(SerializablePackages.Items[Data^.PID].PackageFiles.Items[Data^.PFID]);
|
||||||
if PackageFile <> nil then
|
if PackageFile <> nil then
|
||||||
begin
|
begin
|
||||||
Data^.InstalledVersion := PackageFile.InstalledFileVersion;
|
Data^.InstalledVersion := PackageFile.InstalledFileVersion;
|
||||||
@ -1119,7 +1124,7 @@ begin
|
|||||||
Data := FVST.GetNodeData(Node);
|
Data := FVST.GetNodeData(Node);
|
||||||
if (Data^.DataType = 1) then
|
if (Data^.DataType = 1) then
|
||||||
begin
|
begin
|
||||||
Package := SerializablePackages.FindPackage(Data^.PackageName, fpbPackageName);
|
Package := SerializablePackages.Items[Data^.PID];
|
||||||
if Package <> nil then
|
if Package <> nil then
|
||||||
begin
|
begin
|
||||||
Data^.DownloadZipURL := Package.DownloadZipURL;
|
Data^.DownloadZipURL := Package.DownloadZipURL;
|
||||||
@ -1133,7 +1138,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
if Data^.DataType = 2 then
|
if Data^.DataType = 2 then
|
||||||
begin
|
begin
|
||||||
PackageFile := SerializablePackages.FindPackageFile(Data^.PackageFileName);
|
PackageFile := TPackageFile(SerializablePackages.Items[Data^.PID].PackageFiles.Items[Data^.PFID]);
|
||||||
if PackageFile <> nil then
|
if PackageFile <> nil then
|
||||||
begin
|
begin
|
||||||
Data^.UpdateVersion := PackageFile.UpdateVersion;
|
Data^.UpdateVersion := PackageFile.UpdateVersion;
|
||||||
@ -1251,7 +1256,7 @@ begin
|
|||||||
DataSearch := FVST.GetNodeData(NodeSearch);
|
DataSearch := FVST.GetNodeData(NodeSearch);
|
||||||
if DataSearch^.DataType = 2 then
|
if DataSearch^.DataType = 2 then
|
||||||
begin
|
begin
|
||||||
DependencyPackage := SerializablePackages.FindPackageFile(DataSearch^.PackageFileName);
|
DependencyPackage := TPackageFile(SerializablePackages.Items[DataSearch^.PID].PackageFiles.Items[DataSearch^.PFID]);
|
||||||
if (FVST.CheckState[NodeSearch] <> csCheckedNormal) and
|
if (FVST.CheckState[NodeSearch] <> csCheckedNormal) and
|
||||||
(UpperCase(DataSearch^.PackageFileName) = UpperCase(PackageFileName)) and
|
(UpperCase(DataSearch^.PackageFileName) = UpperCase(PackageFileName)) and
|
||||||
((SerializablePackages.IsDependencyOk(TPackageDependency(PackageList.Items[I]), DependencyPackage)) and
|
((SerializablePackages.IsDependencyOk(TPackageDependency(PackageList.Items[I]), DependencyPackage)) and
|
||||||
@ -1683,7 +1688,7 @@ begin
|
|||||||
Data^.Rating := Trunc((FHoverP.X - R.Left - 1)/16) + 1;
|
Data^.Rating := Trunc((FHoverP.X - R.Left - 1)/16) + 1;
|
||||||
if Data^.Rating > 5 then
|
if Data^.Rating > 5 then
|
||||||
Data^.Rating := 5;
|
Data^.Rating := 5;
|
||||||
Package := SerializablePackages.FindPackage(Data^.PackageName, fpbPackageName);
|
Package := SerializablePackages.Items[Data^.PID];
|
||||||
if Package <> nil then
|
if Package <> nil then
|
||||||
Package.Rating := Data^.Rating;
|
Package.Rating := Data^.Rating;
|
||||||
if Data^.PackageDisplayName <> '' then
|
if Data^.PackageDisplayName <> '' then
|
||||||
|
Loading…
Reference in New Issue
Block a user