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