mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-01 12:32:33 +02:00
Packager: AddPkgDependecyDlg dialog: the possibility to install online packages directly.
git-svn-id: trunk@56668 -
This commit is contained in:
parent
41d64afed4
commit
5fff4bbf99
@ -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
|
||||
|
@ -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';
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user