Packager: AddPkgDependecyDlg dialog: the possibility to install online packages directly.

git-svn-id: trunk@56668 -
This commit is contained in:
balazs 2017-12-08 10:54:41 +00:00
parent 41d64afed4
commit 5fff4bbf99
4 changed files with 20 additions and 13 deletions

View File

@ -109,7 +109,7 @@ type
public
{confirmation/install/extract/download dialogs will be displayed in the center of ParentForm}
function InstallPackages(APkgLinks: TList; AParentForm: TForm;
const AResolveDependencies: Boolean = True): TModalResult; virtual; abstract;
var ANeedToRebuild: Boolean): TModalResult; virtual; abstract;
end;
var

View File

@ -3989,8 +3989,6 @@ resourcestring
lisProjAddOnlinePkg = 'Online (%s)';
lisProjAddMinimumVersionOptional = 'Minimum Version (optional):';
lisProjAddMaximumVersionOptional = 'Maximum Version (optional):';
lisProjAddInstErrCaption = 'Install error';
lisProjAddInstErr = 'One or more online packages could not be installed!';
// component palette
lisKMNewPackage = 'New package';

View File

@ -12,7 +12,7 @@ uses
// LazControls
ListFilterEdit,
// IDEIntf
IDEWindowIntf, PackageDependencyIntf, PackageIntf, IDEDialogs, IDEImagesIntf, PackageLinkIntf,
IDEWindowIntf, PackageDependencyIntf, PackageIntf, IDEDialogs, IDEImagesIntf, PackageLinkIntf, MainIntf,
// IDE
LazarusIDEStrConsts, PackageDefs, PackageSystem, ProjPackCommon, ProjPackChecks;
@ -45,7 +45,7 @@ type
procedure FormCreate(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
function FindPackageLink(const ALazPackageID: TLazPackageID): TPackageLink;
function InstallOnlinePackages: TModalResult;
function InstallOnlinePackages(out ANeedToRebuild: Boolean): TModalResult;
private
fUpdating: Boolean;
fSL: TStringList;
@ -214,6 +214,10 @@ procedure TAddPkgDependencyDialog.DependPkgNameListBoxSelectionChange(
Sender: TObject; User: boolean);
begin
BP.CloseButton.Visible := IsInstallButtonVisible;
if BP.CloseButton.Visible then
BP.OKButton.Enabled := False
else
BP.OKButton.Enabled := True;
end;
procedure TAddPkgDependencyDialog.cbLocalPkgChange(Sender: TObject);
@ -221,7 +225,7 @@ begin
UpdateAvailableDependencyNames;
end;
function TAddPkgDependencyDialog.InstallOnlinePackages: TModalResult;
function TAddPkgDependencyDialog.InstallOnlinePackages(out ANeedToRebuild: Boolean): TModalResult;
var
I: Integer;
PackageLink: TPackageLink;
@ -240,7 +244,7 @@ begin
end;
end;
if PkgList.Count > 0 then
Result := OPMInterface.InstallPackages(PkgList, Self);
Result := OPMInterface.InstallPackages(PkgList, Self, ANeedToRebuild);
finally
PkgList.Free;
PkgList := nil;
@ -249,12 +253,18 @@ end;
procedure TAddPkgDependencyDialog.CloseButtonClick(Sender: TObject);
var
InstallRes: TModalResult;
NeedToRebuild: Boolean;
begin
ModalResult := mrNone;
InstallRes := InstallOnlinePackages;
if (InstallRes <> mrCancel) and (InstallRes <> mrOk) then
IDEMessageDialog(lisProjAddInstErrCaption, lisProjAddInstErr, mtError, [mbOk]);
if InstallOnlinePackages(NeedToRebuild) = mrOK then
begin
UpdateAvailableDependencyNames;
if NeedToRebuild then
begin
Self.Hide;
MainIDEInterface.DoBuildLazarus([]);
end;
end;
end;
procedure TAddPkgDependencyDialog.AddUniquePackagesToList(APackageID: TLazPackageID);

View File

@ -1199,7 +1199,6 @@ begin
if IsValidPkgName(PkgName) then
begin
Result.Name := PkgName;
Result.LPKFilename := PkgFilename;
Result.LPKUrl := PkgURL;
Result.Origin := ploOnline;
FOnlineLinks.Add(Result);