IDEIntf: added IsOwnerDependingOnPkg

git-svn-id: trunk@33834 -
This commit is contained in:
mattias 2011-11-28 15:52:52 +00:00
parent 313d60bf96
commit 16bfa87121
2 changed files with 32 additions and 0 deletions

View File

@ -216,6 +216,8 @@ type
): TModalResult; virtual; abstract;
function DoSaveAllPackages(Flags: TPkgSaveFlags): TModalResult; virtual; abstract;
function IsOwnerDependingOnPkg(AnOwner: TObject; const PkgName: string;
out DependencyOwner: TObject): boolean; virtual; abstract;
function AddUnitDependenciesForComponentClasses(const UnitFilename: string;
ComponentClassnames: TStrings;
Quiet: boolean = false): TModalResult; virtual; abstract;

View File

@ -215,6 +215,8 @@ type
function GetPossibleOwnersOfUnit(const UnitFilename: string;
Flags: TPkgIntfOwnerSearchFlags): TFPList; override;
function GetPackageOfCurrentSourceEditor(out APackage: TLazPackage): TPkgFile;
function IsOwnerDependingOnPkg(AnOwner: TObject; const PkgName: string;
out DependencyOwner: TObject): boolean; override;
function AddDependencyToOwners(OwnerList: TFPList; APackage: TLazPackage;
OnlyTestIfPossible: boolean = false): TModalResult; override;
function DoOpenPkgFile(PkgFile: TPkgFile): TModalResult;
@ -3190,6 +3192,34 @@ begin
APackage:=nil;
end;
function TPkgManager.IsOwnerDependingOnPkg(AnOwner: TObject;
const PkgName: string; out DependencyOwner: TObject): boolean;
var
FirstDep: TPkgDependency;
Dep: TPkgDependency;
begin
Result:=false;
DependencyOwner:=nil;
if (AnOwner=nil) or (PkgName='') then exit;
if AnOwner is TProject then
FirstDep:=TProject(AnOwner).FirstRequiredDependency
else if AnOwner is TLazPackage then begin
if CompareDottedIdentifiers(PChar(TLazPackage(AnOwner).Name),
PChar(PkgName))=0
then begin
DependencyOwner:=AnOwner;
exit(true);
end;
FirstDep:=TLazPackage(AnOwner).FirstRequiredDependency;
end else
exit(false);
if PackageGraph=nil then exit;
Dep:=PackageGraph.FindDependencyRecursively(FirstDep,PkgName);
if Dep=nil then exit;
DependencyOwner:=Dep.Owner;
Result:=true;
end;
function TPkgManager.AddDependencyToOwners(OwnerList: TFPList;
APackage: TLazPackage; OnlyTestIfPossible: boolean): TModalResult;
var