mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-27 15:30:48 +02:00
implemented showing all kinds of dependency owners
git-svn-id: trunk@4101 -
This commit is contained in:
parent
5800ad0cf3
commit
f4cb3c508e
@ -71,7 +71,6 @@ const
|
||||
|
||||
function ShowBrokenDependencies(DependencyList: TList;
|
||||
BtnSet: TMsgDlgButtons): TModalResult;
|
||||
function GetDependencyOwnerAsString(Dependency: TPkgDependency): string;
|
||||
|
||||
|
||||
implementation
|
||||
@ -92,25 +91,6 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetDependencyOwnerAsString(Dependency: TPkgDependency): string;
|
||||
var
|
||||
DepOwner: TObject;
|
||||
begin
|
||||
DepOwner:=Dependency.Owner;
|
||||
if (DepOwner<>nil) then begin
|
||||
if DepOwner is TLazPackage then begin
|
||||
Result:='Package: '+TLazPackage(DepOwner).IDAsString;
|
||||
end else if DepOwner is TProject then begin
|
||||
Result:='Project: '
|
||||
+ExtractFileNameOnly(TProject(DepOwner).ProjectInfoFile);
|
||||
end else begin
|
||||
Result:=DepOwner.ClassName
|
||||
end;
|
||||
end else begin
|
||||
Result:='Dependency without Owner: '+Dependency.AsString;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ TBrokenDependenciesDialog }
|
||||
|
||||
procedure TBrokenDependenciesDialog.BrokenDependenciesDialogResize(
|
||||
|
@ -61,6 +61,8 @@ type
|
||||
procedure(APackage: TLazPackageID) of object;
|
||||
TGetAllRequiredPackagesEvent =
|
||||
procedure(FirstDependency: TPkgDependency; var List: TList) of object;
|
||||
TGetDependencyOwnerDescription =
|
||||
procedure(Dependency: TPkgDependency; var Description: string) of object;
|
||||
|
||||
|
||||
{ TPkgComponent }
|
||||
@ -636,7 +638,7 @@ var
|
||||
PackageDependencies: TAVLTree; // tree of TPkgDependency
|
||||
|
||||
OnGetAllRequiredPackages: TGetAllRequiredPackagesEvent;
|
||||
|
||||
OnGetDependencyOwnerDescription: TGetDependencyOwnerDescription;
|
||||
|
||||
function CompareLazPackageID(Data1, Data2: Pointer): integer;
|
||||
function CompareNameWithPackageID(Key, Data: Pointer): integer;
|
||||
@ -670,9 +672,12 @@ function FindLowestPkgDependencyWithName(const PkgName: string): TPkgDependency;
|
||||
function FindLowestPkgDependencyNodeWithName(const PkgName: string): TAVLTreeNode;
|
||||
function FindNextPkgDependecyNodeWithSameName(Node: TAVLTreeNode): TAVLTreeNode;
|
||||
|
||||
function GetDependencyOwnerAsString(Dependency: TPkgDependency): string;
|
||||
|
||||
function PackageFileNameIsValid(const AFilename: string): boolean;
|
||||
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
|
||||
@ -917,6 +922,11 @@ begin
|
||||
Result:=nil;
|
||||
end;
|
||||
|
||||
function GetDependencyOwnerAsString(Dependency: TPkgDependency): string;
|
||||
begin
|
||||
OnGetDependencyOwnerDescription(Dependency,Result)
|
||||
end;
|
||||
|
||||
function PackageFileNameIsValid(const AFilename: string): boolean;
|
||||
var
|
||||
PkgName: String;
|
||||
|
@ -59,6 +59,12 @@ type
|
||||
var AllowExpansion: Boolean);
|
||||
procedure PkgTreeViewSelectionChanged(Sender: TObject);
|
||||
private
|
||||
ImgIndexPackage: integer;
|
||||
ImgIndexInstallPackage: integer;
|
||||
ImgIndexInstalledPackage: integer;
|
||||
ImgIndexUninstallPackage: integer;
|
||||
ImgIndexCirclePackage: integer;
|
||||
ImgIndexMissingPackage: integer;
|
||||
FOnOpenPackage: TOnOpenPackage;
|
||||
fSortedPackages: TAVLTree;
|
||||
FChangedDuringLock: boolean;
|
||||
@ -97,13 +103,6 @@ implementation
|
||||
|
||||
uses Math;
|
||||
|
||||
var
|
||||
ImgIndexPackage,
|
||||
ImgIndexInstallPackage,
|
||||
ImgIndexUninstallPackage,
|
||||
ImgIndexCirclePackage,
|
||||
ImgIndexMissingPackage: integer;
|
||||
|
||||
type
|
||||
TExpandedNode = class
|
||||
NodeText: string;
|
||||
@ -342,8 +341,10 @@ begin
|
||||
Name:='ImageList';
|
||||
ImgIndexPackage:=Count;
|
||||
AddResImg('pkg_package');
|
||||
ImgIndexInstalledPackage:=Count;
|
||||
AddResImg('pkg_package_install');
|
||||
ImgIndexInstallPackage:=Count;
|
||||
AddResImg('pkg_package_installed');
|
||||
AddResImg('pkg_package_autoinstall');
|
||||
ImgIndexUninstallPackage:=Count;
|
||||
AddResImg('pkg_package_uninstall');
|
||||
ImgIndexCirclePackage:=Count;
|
||||
@ -395,12 +396,16 @@ function TPkgGraphExplorer.GetPackageImageIndex(Pkg: TLazPackage): integer;
|
||||
begin
|
||||
if Pkg.Installed<>pitNope then begin
|
||||
if Pkg.AutoInstall<>pitNope then begin
|
||||
Result:=ImgIndexInstallPackage;
|
||||
Result:=ImgIndexInstalledPackage;
|
||||
end else begin
|
||||
Result:=ImgIndexUninstallPackage;
|
||||
end;
|
||||
end else begin
|
||||
Result:=ImgIndexPackage;
|
||||
if Pkg.AutoInstall<>pitNope then begin
|
||||
Result:=ImgIndexInstallPackage;
|
||||
end else begin
|
||||
Result:=ImgIndexPackage;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -91,8 +91,9 @@ type
|
||||
procedure IDEComponentPaletteEndUpdate(Sender: TObject;
|
||||
PaletteChanged: boolean);
|
||||
procedure IDEComponentPaletteOpenPackage(Sender: TObject);
|
||||
procedure GetDependencyOwnerDescription(Dependency: TPkgDependency;
|
||||
var Description: string);
|
||||
private
|
||||
FirstInstalledDependency: TPkgDependency;
|
||||
FirstAutoInstallDependency: TPkgDependency;
|
||||
// helper functions
|
||||
function DoShowSavePackageAsDialog(APackage: TLazPackage): TModalResult;
|
||||
@ -224,6 +225,28 @@ begin
|
||||
DoOpenPackage(TLazPackage(Sender));
|
||||
end;
|
||||
|
||||
procedure TPkgManager.GetDependencyOwnerDescription(
|
||||
Dependency: TPkgDependency; var Description: string);
|
||||
var
|
||||
DepOwner: TObject;
|
||||
begin
|
||||
DepOwner:=Dependency.Owner;
|
||||
if (DepOwner<>nil) then begin
|
||||
if DepOwner is TLazPackage then begin
|
||||
Description:='Package: '+TLazPackage(DepOwner).IDAsString;
|
||||
end else if DepOwner is TProject then begin
|
||||
Description:='Project: '
|
||||
+ExtractFileNameOnly(TProject(DepOwner).ProjectInfoFile);
|
||||
end else if DepOwner=Self then begin
|
||||
Description:='Lazarus';
|
||||
end else begin
|
||||
Description:=DepOwner.ClassName
|
||||
end;
|
||||
end else begin
|
||||
Description:='Dependency without Owner: '+Dependency.AsString;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.MainIDEitmPkgAddCurUnitToPkgClick(Sender: TObject);
|
||||
begin
|
||||
DoAddActiveUnitToAPackage;
|
||||
@ -1051,6 +1074,7 @@ begin
|
||||
for i:=0 to PackageGraph.LazarusBasePackages.Count-1 do begin
|
||||
BasePackage:=TLazPackage(PackageGraph.LazarusBasePackages[i]);
|
||||
Dependency:=BasePackage.CreateDependencyForThisPkg;
|
||||
Dependency.Owner:=Self;
|
||||
PackageGraph.OpenDependency(Dependency);
|
||||
Dependency.AddToList(FirstAutoInstallDependency,pdlRequires);
|
||||
end;
|
||||
@ -1104,9 +1128,9 @@ begin
|
||||
NewDependency:=TPkgDependency.Create;
|
||||
NewDependency.Owner:=Self;
|
||||
NewDependency.PackageName:=PackageName;
|
||||
NewDependency.AddToList(FirstInstalledDependency,pdlRequires);
|
||||
PackageGraph.OpenInstalledDependency(NewDependency,pitStatic);
|
||||
Result:=NewDependency.RequiredPackage;
|
||||
NewDependency.Free;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.LoadAutoInstallPackages;
|
||||
@ -1141,6 +1165,9 @@ end;
|
||||
constructor TPkgManager.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
OnGetDependencyOwnerDescription:=@GetDependencyOwnerDescription;
|
||||
|
||||
|
||||
IDEComponentPalette:=TComponentPalette.Create;
|
||||
IDEComponentPalette.OnEndUpdate:=@IDEComponentPaletteEndUpdate;
|
||||
TComponentPalette(IDEComponentPalette).OnOpenPackage:=@IDEComponentPaletteOpenPackage;
|
||||
|
Loading…
Reference in New Issue
Block a user