mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-07 20:56:31 +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
|
public
|
||||||
{confirmation/install/extract/download dialogs will be displayed in the center of ParentForm}
|
{confirmation/install/extract/download dialogs will be displayed in the center of ParentForm}
|
||||||
function InstallPackages(APkgLinks: TList; AParentForm: TForm;
|
function InstallPackages(APkgLinks: TList; AParentForm: TForm;
|
||||||
const AResolveDependencies: Boolean = True): TModalResult; virtual; abstract;
|
var ANeedToRebuild: Boolean): TModalResult; virtual; abstract;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -3989,8 +3989,6 @@ resourcestring
|
|||||||
lisProjAddOnlinePkg = 'Online (%s)';
|
lisProjAddOnlinePkg = 'Online (%s)';
|
||||||
lisProjAddMinimumVersionOptional = 'Minimum Version (optional):';
|
lisProjAddMinimumVersionOptional = 'Minimum Version (optional):';
|
||||||
lisProjAddMaximumVersionOptional = 'Maximum Version (optional):';
|
lisProjAddMaximumVersionOptional = 'Maximum Version (optional):';
|
||||||
lisProjAddInstErrCaption = 'Install error';
|
|
||||||
lisProjAddInstErr = 'One or more online packages could not be installed!';
|
|
||||||
|
|
||||||
// component palette
|
// component palette
|
||||||
lisKMNewPackage = 'New package';
|
lisKMNewPackage = 'New package';
|
||||||
|
@ -12,7 +12,7 @@ uses
|
|||||||
// LazControls
|
// LazControls
|
||||||
ListFilterEdit,
|
ListFilterEdit,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
IDEWindowIntf, PackageDependencyIntf, PackageIntf, IDEDialogs, IDEImagesIntf, PackageLinkIntf,
|
IDEWindowIntf, PackageDependencyIntf, PackageIntf, IDEDialogs, IDEImagesIntf, PackageLinkIntf, MainIntf,
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, PackageDefs, PackageSystem, ProjPackCommon, ProjPackChecks;
|
LazarusIDEStrConsts, PackageDefs, PackageSystem, ProjPackCommon, ProjPackChecks;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ type
|
|||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure OKButtonClick(Sender: TObject);
|
procedure OKButtonClick(Sender: TObject);
|
||||||
function FindPackageLink(const ALazPackageID: TLazPackageID): TPackageLink;
|
function FindPackageLink(const ALazPackageID: TLazPackageID): TPackageLink;
|
||||||
function InstallOnlinePackages: TModalResult;
|
function InstallOnlinePackages(out ANeedToRebuild: Boolean): TModalResult;
|
||||||
private
|
private
|
||||||
fUpdating: Boolean;
|
fUpdating: Boolean;
|
||||||
fSL: TStringList;
|
fSL: TStringList;
|
||||||
@ -214,6 +214,10 @@ procedure TAddPkgDependencyDialog.DependPkgNameListBoxSelectionChange(
|
|||||||
Sender: TObject; User: boolean);
|
Sender: TObject; User: boolean);
|
||||||
begin
|
begin
|
||||||
BP.CloseButton.Visible := IsInstallButtonVisible;
|
BP.CloseButton.Visible := IsInstallButtonVisible;
|
||||||
|
if BP.CloseButton.Visible then
|
||||||
|
BP.OKButton.Enabled := False
|
||||||
|
else
|
||||||
|
BP.OKButton.Enabled := True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAddPkgDependencyDialog.cbLocalPkgChange(Sender: TObject);
|
procedure TAddPkgDependencyDialog.cbLocalPkgChange(Sender: TObject);
|
||||||
@ -221,7 +225,7 @@ begin
|
|||||||
UpdateAvailableDependencyNames;
|
UpdateAvailableDependencyNames;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TAddPkgDependencyDialog.InstallOnlinePackages: TModalResult;
|
function TAddPkgDependencyDialog.InstallOnlinePackages(out ANeedToRebuild: Boolean): TModalResult;
|
||||||
var
|
var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
PackageLink: TPackageLink;
|
PackageLink: TPackageLink;
|
||||||
@ -240,7 +244,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if PkgList.Count > 0 then
|
if PkgList.Count > 0 then
|
||||||
Result := OPMInterface.InstallPackages(PkgList, Self);
|
Result := OPMInterface.InstallPackages(PkgList, Self, ANeedToRebuild);
|
||||||
finally
|
finally
|
||||||
PkgList.Free;
|
PkgList.Free;
|
||||||
PkgList := nil;
|
PkgList := nil;
|
||||||
@ -249,12 +253,18 @@ end;
|
|||||||
|
|
||||||
procedure TAddPkgDependencyDialog.CloseButtonClick(Sender: TObject);
|
procedure TAddPkgDependencyDialog.CloseButtonClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
InstallRes: TModalResult;
|
NeedToRebuild: Boolean;
|
||||||
begin
|
begin
|
||||||
ModalResult := mrNone;
|
ModalResult := mrNone;
|
||||||
InstallRes := InstallOnlinePackages;
|
if InstallOnlinePackages(NeedToRebuild) = mrOK then
|
||||||
if (InstallRes <> mrCancel) and (InstallRes <> mrOk) then
|
begin
|
||||||
IDEMessageDialog(lisProjAddInstErrCaption, lisProjAddInstErr, mtError, [mbOk]);
|
UpdateAvailableDependencyNames;
|
||||||
|
if NeedToRebuild then
|
||||||
|
begin
|
||||||
|
Self.Hide;
|
||||||
|
MainIDEInterface.DoBuildLazarus([]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAddPkgDependencyDialog.AddUniquePackagesToList(APackageID: TLazPackageID);
|
procedure TAddPkgDependencyDialog.AddUniquePackagesToList(APackageID: TLazPackageID);
|
||||||
|
@ -1199,7 +1199,6 @@ begin
|
|||||||
if IsValidPkgName(PkgName) then
|
if IsValidPkgName(PkgName) then
|
||||||
begin
|
begin
|
||||||
Result.Name := PkgName;
|
Result.Name := PkgName;
|
||||||
Result.LPKFilename := PkgFilename;
|
|
||||||
Result.LPKUrl := PkgURL;
|
Result.LPKUrl := PkgURL;
|
||||||
Result.Origin := ploOnline;
|
Result.Origin := ploOnline;
|
||||||
FOnlineLinks.Add(Result);
|
FOnlineLinks.Add(Result);
|
||||||
|
Loading…
Reference in New Issue
Block a user