diff --git a/components/ideintf/packageintf.pas b/components/ideintf/packageintf.pas index 0c0db50fa8..ff6ee0230d 100644 --- a/components/ideintf/packageintf.pas +++ b/components/ideintf/packageintf.pas @@ -288,6 +288,9 @@ type function InstallPackages(PkgIdList: TObjectList; Flags: TPkgInstallInIDEFlags = []): TModalResult; virtual; abstract; + //uninstall + function UninstallPackage(APackage: TIDEPackage; ShowAbort: boolean): TModalResult; virtual; abstract; + // events procedure RemoveAllHandlersOfObject(AnObject: TObject); procedure AddHandlerOnGraphChanged(const OnGraphChanged: TNotifyEvent; diff --git a/packager/pkgmanager.pas b/packager/pkgmanager.pas index 26b6ccf01e..5070802864 100644 --- a/packager/pkgmanager.pas +++ b/packager/pkgmanager.pas @@ -337,6 +337,7 @@ type ): boolean; override; function InstallPackages(PkgIdList: TObjectList; Flags: TPkgInstallInIDEFlags = []): TModalResult; override; + function UninstallPackage(APackage: TIDEPackage; ShowAbort: boolean): TModalResult; override; procedure DoTranslatePackage(APackage: TLazPackage); function DoOpenPackageSource(APackage: TLazPackage): TModalResult; function DoCompileAutoInstallPackages(Flags: TPkgCompileFlags; @@ -5465,6 +5466,12 @@ begin Result:=mrOk; end; +function TPkgManager.UninstallPackage(APackage: TIDEPackage; ShowAbort: boolean): TModalResult; +begin + Assert(APackage is TLazPackage, 'TPkgManager.DoUninstallPackage: APackage is not TLazPackage'); + Result := DoUninstallPackage(TLazPackage(APackage), [puifDoNotConfirm, puifDoNotBuildIDE], ShowAbort); +end; + function TPkgManager.CheckInstallPackageList(PkgIDList: TObjectList; Flags: TPkgInstallInIDEFlags): boolean; var