source: trunk/Forms/FormLog.pas

Last change on this file was 24, checked in by chronos, 4 weeks ago
  • Fixed: Test cases executed with FormTests form from Common package.
File size: 2.7 KB
Line 
1unit FormLog;
2
3interface
4
5uses
6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
7 StdCtrls, ExtCtrls, VCS;
8
9type
10
11 { TFormLog }
12
13 TFormLog = class(TForm)
14 Button1: TButton;
15 ListViewItems: TListView;
16 ListViewFiles: TListView;
17 MemoMessages: TMemo;
18 Splitter1: TSplitter;
19 Splitter2: TSplitter;
20 procedure FormCreate(Sender: TObject);
21 procedure FormDestroy(Sender: TObject);
22 procedure FormShow(Sender: TObject);
23 procedure ListViewFilesData(Sender: TObject; Item: TListItem);
24 procedure ListViewItemsData(Sender: TObject; Item: TListItem);
25 procedure ListViewItemsSelectItem(Sender: TObject; Item: TListItem;
26 Selected: Boolean);
27 public
28 FileName: string;
29 LogList: TLogItems;
30 procedure ReloadList;
31 procedure UpdateInterface;
32 end;
33
34
35implementation
36
37uses
38 Core;
39
40{$R *.lfm}
41
42{ TFormLog }
43
44procedure TFormLog.FormCreate(Sender: TObject);
45begin
46 LogList := TLogItems.Create;
47end;
48
49procedure TFormLog.FormDestroy(Sender: TObject);
50begin
51 FreeAndNil(LogList);
52end;
53
54procedure TFormLog.FormShow(Sender: TObject);
55begin
56 Core.Core.Project.WorkingCopy.GetLog(FileName, LogList);
57 ReloadList;
58end;
59
60procedure TFormLog.ListViewFilesData(Sender: TObject; Item: TListItem);
61begin
62 if Assigned(ListViewItems.Selected) and (Item.Index >= 0) and (Item.Index < TLogItem(ListViewItems.Selected.Data).ChangedFiles.Count) then
63 with TLogItem(ListViewItems.Selected.Data) do begin
64 Item.Caption := ChangedFiles[Item.Index];
65 end;
66end;
67
68procedure TFormLog.ListViewItemsData(Sender: TObject; Item: TListItem);
69begin
70 if (Item.Index >= 0) and (Item.Index < LogList.Count) then
71 with TLogItem(LogList[Item.Index]) do begin
72 Item.Caption := Revision;
73 Item.SubItems.Add(Actions);
74 Item.SubItems.Add(Author);
75 Item.SubItems.Add(DateTimeToStr(Time));
76 Item.SubItems.Add(StringReplace(Messages.Text, LineEnding, ' ', [rfReplaceAll]));
77 Item.Data := LogList[Item.Index];
78 end;
79end;
80
81procedure TFormLog.ListViewItemsSelectItem(Sender: TObject; Item: TListItem;
82 Selected: Boolean);
83begin
84 ReloadList;
85end;
86
87procedure TFormLog.ReloadList;
88begin
89 ListViewItems.Items.Count := LogList.Count;
90 ListViewItems.Refresh;
91 if Assigned(ListViewItems.Selected) then
92 with TLogItem(ListViewItems.Selected.Data) do begin
93 ListViewFiles.Items.Count := ChangedFiles.Count;
94 ListViewFiles.Refresh;
95 MemoMessages.Lines.Assign(Messages);
96 end else begin
97 ListViewFiles.Items.Count := 0;
98 ListViewFiles.Refresh;
99 MemoMessages.Lines.Clear;
100 end;
101 UpdateInterface;
102end;
103
104procedure TFormLog.UpdateInterface;
105begin
106 MemoMessages.Enabled := Assigned(ListViewItems.Selected);
107 ListViewFiles.Enabled := Assigned(ListViewItems.Selected)
108end;
109
110end.
111
Note: See TracBrowser for help on using the repository browser.