IDE: drop component: add the registering package only if designtime

This commit is contained in:
mattias 2022-06-09 13:14:21 +02:00
parent 9974588f86
commit 008fbd9283

View File

@ -4501,7 +4501,8 @@ function TPkgManager.GetUnitsAndDepsForComps(ComponentClasses: TClassList;
var var
CurPackages, AllPackages: TStringList; CurPackages, AllPackages: TStringList;
procedure AddPkgDep(CurCompReq: TComponentRequirements; PkgFile: TPkgFile); procedure AddPkgDep(CurCompReq: TComponentRequirements; PkgFile: TPkgFile;
OnlyDesigntime: boolean);
var var
RequiredPackage: TLazPackageID; RequiredPackage: TLazPackageID;
Helper: TPackageIterateHelper; Helper: TPackageIterateHelper;
@ -4510,6 +4511,9 @@ var
RequiredPackage:=PkgFile.LazPackage; RequiredPackage:=PkgFile.LazPackage;
RequiredPackage:=RedirectPackageDependency(TIDEPackage(RequiredPackage)); RequiredPackage:=RedirectPackageDependency(TIDEPackage(RequiredPackage));
if RequiredPackage=nil then exit; if RequiredPackage=nil then exit;
if OnlyDesigntime and (TIDEPackage(RequiredPackage).PackageType<>lptDesignTime) then
exit;
if CurPackages=nil then if CurPackages=nil then
begin begin
CurPackages:=TStringListUTF8Fast.Create; CurPackages:=TStringListUTF8Fast.Create;
@ -4586,10 +4590,10 @@ begin
CurUnitName:=CurUnitNames[CurUnitIdx]; CurUnitName:=CurUnitNames[CurUnitIdx];
UnitList.Add(CurUnitName); UnitList.Add(CurUnitName);
PkgFile:=PackageGraph.FindUnitInAllPackages(CurUnitName,true); PkgFile:=PackageGraph.FindUnitInAllPackages(CurUnitName,true);
AddPkgDep(CurCompReq,PkgFile); AddPkgDep(CurCompReq,PkgFile,false);
if TPkgComponent(CurRegComp).PkgFile<>PkgFile then if TPkgComponent(CurRegComp).PkgFile<>PkgFile then
// e.g. a designtime package has registered the componentclass // e.g. a designtime package has registered the componentclass
AddPkgDep(CurCompReq,TPkgComponent(CurRegComp).PkgFile); AddPkgDep(nil,TPkgComponent(CurRegComp).PkgFile,true);
end; // for CurUnitIdx:= end; // for CurUnitIdx:=
end; end;
end; // for CurClassID:=... end; // for CurClassID:=...