source: trunk/Forms/USourceSelection.pas

Last change on this file was 9, checked in by chronos, 13 years ago
  • Fixed: Instance compilation on Linux.
File size: 2.5 KB
Line 
1unit USourceSelection;
2
3{$mode objfpc}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
9 StdCtrls, USource, HttpSend;
10
11type
12
13 { TSourceSelectionForm }
14
15 TSourceSelectionForm = class(TForm)
16 ButtonOk: TButton;
17 ButtonCancel: TButton;
18 ButtonUpdateSource: TButton;
19 ListView1: TListView;
20 procedure FormCreate(Sender: TObject);
21 procedure FormDestroy(Sender: TObject);
22 procedure FormShow(Sender: TObject);
23 procedure ListView1Data(Sender: TObject; Item: TListItem);
24 procedure ButtonUpdateSourceClick(Sender: TObject);
25 private
26 { private declarations }
27 public
28 ProjectType: string;
29 Sources: TSourceList;
30 procedure ReloadList;
31 end;
32
33var
34 SourceSelectionForm: TSourceSelectionForm;
35
36implementation
37
38{$R *.lfm}
39
40uses
41 UMainForm;
42
43{ TSourceSelectionForm }
44
45procedure TSourceSelectionForm.ReloadList;
46var
47 I: Integer;
48begin
49 Sources.Clear;
50 for I := 0 to MainForm.Sources.Count - 1 do
51 if (TSource(MainForm.Sources[I]).ProjectType = ProjectType) or
52 (ProjectType = '') then
53 Sources.Add(MainForm.Sources[I]);
54 if ListView1.Items.Count <> Sources.Count then
55 ListView1.Items.Count := Sources.Count;
56 ListView1.Items[-1]; // workaround
57 ListView1.Refresh;
58end;
59
60procedure TSourceSelectionForm.ListView1Data(Sender: TObject; Item: TListItem);
61begin
62 if Item.Index < Sources.Count then
63 with TSource(Sources[Item.Index]) do begin
64 Item.Caption := ProjectName;
65 Item.Data := Sources[Item.Index];
66 Item.SubItems.Add(VersionType);
67 Item.SubItems.Add(VersionNumber);
68 Item.SubItems.Add('');
69 Item.SubItems.Add('');
70 Item.SubItems.Add(BooleanText[Downloaded]);
71 Item.SubItems.Add(SubversionURL);
72 end;
73end;
74
75procedure TSourceSelectionForm.FormShow(Sender: TObject);
76begin
77 ReloadList;
78end;
79
80procedure TSourceSelectionForm.FormCreate(Sender: TObject);
81begin
82 Sources := TSourceList.Create;
83 Sources.OwnsObjects := False;
84end;
85
86procedure TSourceSelectionForm.FormDestroy(Sender: TObject);
87begin
88 Sources.Free;
89end;
90
91procedure TSourceSelectionForm.ButtonUpdateSourceClick(Sender: TObject);
92var
93 fs: TFileStream;
94begin
95 fs := TFileStream.Create(ExtractFileName(MainForm.SourceURL), fmOpenWrite or fmCreate);
96 try
97 HttpGetBinary(MainForm.SourceURL, fs);
98 finally
99 fs.Free;
100 end;
101 MainForm.Sources.UpdateFormFile(ExtractFileName(MainForm.SourceURL));
102 ReloadList;
103end;
104
105end.
106
Note: See TracBrowser for help on using the repository browser.