61
61
TStringTable = array of TStringList;
62
62
63
63
var
64
- PSelInstallType: TInputOptionWizardPage;
64
+ PSelInstallType: TInputOptionWizardPage;
65
+ itypeLatestRelease: Integer;
66
+ itypeLatestPrerelease: Integer;
67
+ itypeCustom: Integer;
65
68
PSelRelease: TWizardPage;
66
69
PSelReleaseListBox: TNewCheckListBox;
67
70
@@ -166,8 +169,7 @@ begin
166
169
Result := TStrings(PSelReleaseListBox.ItemObject[i]);
167
170
break;
168
171
end ;
169
- end ;
170
- Result := nil ;
172
+ end ;
171
173
end ;
172
174
173
175
function ConstGetTargetReleaseVersion (Param: String): String;
@@ -183,11 +185,28 @@ end;
183
185
procedure CurPageChanged (CurPageID: Integer);
184
186
begin
185
187
if CurPageID = wpPreparing then begin
188
+ if PSelInstallType.SelectedValueIndex = itypeLatestRelease then begin
189
+ TargetRelease := GetListBoxLatestRelease(False);
190
+ end else if (not (itypeLatestPrerelease = -1 )) and (PSelInstallType.SelectedValueIndex = itypeLatestPrerelease) then begin
191
+ TargetRelease := GetListBoxLatestRelease(True);
192
+ end else begin
193
+ TargetRelease := GetListBoxSelectedRelease();
194
+ end ;
195
+
186
196
idpAddFile(GetURL(TargetRelease), ExpandConstant(' {tmp}\Precompiled.zip' ));
187
197
idpDownloadAfter(wpPreparing);
188
198
end ;
189
199
end ;
190
200
201
+ function ShouldSkipPage (PageID: Integer): Boolean;
202
+ begin
203
+ if PageID = PSelRelease.ID then begin
204
+ Result := not (PSelInstallType.SelectedValueIndex = itypeCustom);
205
+ end else begin
206
+ Result := False;
207
+ end ;
208
+ end ;
209
+
191
210
function PrepareToInstall (var NeedsRestart: Boolean): String;
192
211
begin
193
212
if not ErlangIsInstalled then begin
@@ -212,7 +231,15 @@ begin
212
231
PSelReleaseListBox.Parent := PSelRelease.Surface;
213
232
214
233
PopulatePSelReleaseListBox(CSVToStringTable(ExpandConstant(' {tmp}\releases.csv' )));
215
- TargetRelease := GetListBoxLatestRelease(False);
234
+
235
+ itypeLatestRelease := PSelInstallType.Add(' Install the latest stable release (v' + GetVersion(GetListBoxLatestRelease(False)) + ' )' );
236
+ PSelInstallType.SelectedValueIndex := itypeLatestRelease;
237
+ if not (GetListBoxLatestRelease(True) = nil ) then begin
238
+ itypeLatestPrerelease := PSelInstallType.Add(' Install the latest prerelease (v' + GetVersion(GetListBoxLatestRelease(True)) + ' )' );
239
+ end else begin
240
+ itypeLatestPrerelease := -1 ;
241
+ end ;
242
+ itypeCustom := PSelInstallType.Add(' Select another release to install' );
216
243
end ;
217
244
218
245
function InitializeSetup (): Boolean;
0 commit comments