Subversion Repositories recyclebinunit

Rev

Rev 99 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 99 Rev 106
Line 16... Line 16...
16
    OpenDialog1: TOpenDialog;
16
    OpenDialog1: TOpenDialog;
17
    LabeledEdit1: TLabeledEdit;
17
    LabeledEdit1: TLabeledEdit;
18
    ImageList1: TImageList;
18
    ImageList1: TImageList;
19
    CheckBox2: TCheckBox;
19
    CheckBox2: TCheckBox;
20
    Button3: TButton;
20
    Button3: TButton;
-
 
21
    Button4: TButton;
-
 
22
    SaveDialog1: TSaveDialog;
21
    procedure Button1Click(Sender: TObject);
23
    procedure Button1Click(Sender: TObject);
22
    procedure Button2Click(Sender: TObject);
24
    procedure Button2Click(Sender: TObject);
23
    procedure FormShow(Sender: TObject);
25
    procedure FormShow(Sender: TObject);
24
    procedure TreeView1DblClick(Sender: TObject);
26
    procedure TreeView1DblClick(Sender: TObject);
25
    procedure Button3Click(Sender: TObject);
27
    procedure Button3Click(Sender: TObject);
-
 
28
    procedure Button4Click(Sender: TObject);
26
  private
29
  private
27
    localRecyclersNode: TTreeNode;
30
    localRecyclersNode: TTreeNode;
28
    individualRecyclersNode: TTreeNode;
31
    individualRecyclersNode: TTreeNode;
29
  end;
32
  end;
30
 
33
 
Line 48... Line 51...
48
  ICON_BIN = 4;
51
  ICON_BIN = 4;
49
  ICON_DRIVE = 6;
52
  ICON_DRIVE = 6;
50
  ICON_UNKNOWN = 8;
53
  ICON_UNKNOWN = 8;
51
  ICON_FOLDER = 10;
54
  ICON_FOLDER = 10;
52
 
55
 
-
 
56
resourcestring
-
 
57
  S_PLEASE_WAIT = 'Please wait';
-
 
58
 
53
procedure TRecyclerListingMainForm.Button1Click(Sender: TObject);
59
procedure TRecyclerListingMainForm.Button1Click(Sender: TObject);
54
var
60
var
55
  drives: TObjectList{TRbDrive};
61
  drives: TObjectList{TRbDrive};
56
  iDrive: integer;
62
  iDrive: integer;
57
  drive: TRbDrive;
63
  drive: TRbDrive;
Line 65... Line 71...
65
  items: TObjectList{TRbRecycleBinItem};
71
  items: TObjectList{TRbRecycleBinItem};
66
  iItem: integer;
72
  iItem: integer;
67
  item: TRbRecycleBinItem;
73
  item: TRbRecycleBinItem;
68
  nItem: TTreeNode;
74
  nItem: TTreeNode;
69
  sCaption: string;
75
  sCaption: string;
-
 
76
 
-
 
77
  bakCaption: string;
70
resourcestring
78
resourcestring
71
  S_DRIVE = 'Drive %s';
79
  S_DRIVE = 'Drive %s';
72
begin
80
begin
-
 
81
  bakCaption := Button1.Caption;
-
 
82
  Button1.Caption := S_PLEASE_WAIT;
-
 
83
  try
73
  localRecyclersNode.DeleteChildren; // TODO: Will the objects be freed? This is important to avoid memory leaks.
84
    localRecyclersNode.DeleteChildren; // TODO: Will the objects be freed? This is important to avoid memory leaks.
74
 
85
 
75
  TreeView1.Items.BeginUpdate;
86
    TreeView1.Items.BeginUpdate;
76
  drives := TObjectList.Create(false);
87
    drives := TObjectList.Create(false);
77
  bins := TObjectList.Create(false);
88
    bins := TObjectList.Create(false);
Line 133... Line 144...
133
    items.Free;
144
      items.Free;
134
    TreeView1.Items.EndUpdate;
145
      TreeView1.Items.EndUpdate;
135
  end;
146
    end;
136
 
147
 
137
  localRecyclersNode.Expand(false);
148
    localRecyclersNode.Expand(false);
-
 
149
  finally
-
 
150
    Button1.Caption := bakCaption;
-
 
151
  end;
138
end;
152
end;
139
 
153
 
140
procedure TRecyclerListingMainForm.Button2Click(Sender: TObject);
154
procedure TRecyclerListingMainForm.Button2Click(Sender: TObject);
141
var
155
var
142
  bin: TRbRecycleBin;
156
  bin: TRbRecycleBin;
Line 145... Line 159...
145
  items: TObjectList{TRbRecycleBinItem};
159
  items: TObjectList{TRbRecycleBinItem};
146
  iItem: integer;
160
  iItem: integer;
147
  item: TRbRecycleBinItem;
161
  item: TRbRecycleBinItem;
148
  nItem: TTreeNode;
162
  nItem: TTreeNode;
149
  sCaption: string;
163
  sCaption: string;
-
 
164
  bakCaption: string;
150
begin
165
begin
-
 
166
  bakCaption := Button2.Caption;
-
 
167
  Button2.Caption := S_PLEASE_WAIT;
-
 
168
  try
151
  bin := TRbRecycleBin.Create(LabeledEdit1.Text);
169
    bin := TRbRecycleBin.Create(LabeledEdit1.Text);
152
 
170
 
153
  nBin := TreeView1.Items.AddChildObject(individualRecyclersNode, bin.FileOrDirectory, bin);
171
    nBin := TreeView1.Items.AddChildObject(individualRecyclersNode, bin.FileOrDirectory, bin);
154
  nBin.ImageIndex := ICON_BIN;
172
    nBin.ImageIndex := ICON_BIN;
155
  nBin.SelectedIndex := nBin.ImageIndex;
173
    nBin.SelectedIndex := nBin.ImageIndex;
Line 182... Line 200...
182
  finally
200
    finally
183
    items.Free;
201
      items.Free;
184
  end;
202
    end;
185
 
203
 
186
  nBin.Expand(false);
204
    nBin.Expand(false);
-
 
205
  finally
-
 
206
    Button2.Caption := bakCaption;
-
 
207
  end;
187
end;
208
end;
188
 
209
 
189
procedure TRecyclerListingMainForm.Button3Click(Sender: TObject);
210
procedure TRecyclerListingMainForm.Button3Click(Sender: TObject);
190
begin
211
begin
191
  if OpenDialog1.Execute then
212
  if OpenDialog1.Execute then
192
    LabeledEdit1.Text := OpenDialog1.FileName;
213
    LabeledEdit1.Text := OpenDialog1.FileName;
193
end;
214
end;
194
 
215
 
-
 
216
procedure TRecyclerListingMainForm.Button4Click(Sender: TObject);
-
 
217
begin
-
 
218
  if SaveDialog1.Execute then
-
 
219
  begin
-
 
220
    TreeView1.SaveToFile(SaveDialog1.FileName);
-
 
221
  end;
-
 
222
end;
-
 
223
 
195
procedure TRecyclerListingMainForm.FormShow(Sender: TObject);
224
procedure TRecyclerListingMainForm.FormShow(Sender: TObject);
196
resourcestring
225
resourcestring
197
  S_LOCAL_RECYCLE_BINS = 'Local recycle bins';
226
  S_LOCAL_RECYCLE_BINS = 'Local recycle bins';
198
  S_MANUAL_RECYCLE_BINS ='Manually added recycle bins';
227
  S_MANUAL_RECYCLE_BINS ='Manually added recycle bins';
199
begin
228
begin