Subversion Repositories recyclebinunit

Rev

Rev 83 | Rev 87 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 83 Rev 86
Line 1... Line 1...
1
unit RecyclerListingMain;
1
unit RecyclerListingMain;
2
 
2
 
-
 
3
// TODO: Doubleclick to open file!
-
 
4
 
3
interface
5
interface
4
 
6
 
5
uses
7
uses
6
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
8
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, ImgList;
9
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, ImgList;
Line 53... Line 55...
53
 
55
 
54
  items: TObjectList{TRbRecycleBinItem};
56
  items: TObjectList{TRbRecycleBinItem};
55
  iItem: integer;
57
  iItem: integer;
56
  item: TRbRecycleBinItem;
58
  item: TRbRecycleBinItem;
57
  nItem: TTreeNode;
59
  nItem: TTreeNode;
-
 
60
  sCaption: string;
-
 
61
resourcestring
-
 
62
  S_DRIVE = 'Drive %s';
58
begin
63
begin
59
  localRecyclersNode.DeleteChildren;
64
  localRecyclersNode.DeleteChildren;
60
 
65
 
61
  TreeView1.Items.BeginUpdate;
66
  TreeView1.Items.BeginUpdate;
62
  drives := TObjectList.Create(true);
67
  drives := TObjectList.Create(true);
Line 68... Line 73...
68
    for iDrive := 0 to drives.Count - 1 do
73
    for iDrive := 0 to drives.Count - 1 do
69
    begin
74
    begin
70
      drive := drives.Items[iDrive] as TRbDrive;
75
      drive := drives.Items[iDrive] as TRbDrive;
71
 
76
 
72
      if drive.VolumeGUIDAvailable then
77
      if drive.VolumeGUIDAvailable then
73
        nDrive := TreeView1.Items.AddChildObject(localRecyclersNode, 'Drive '+drive.DriveLetter+': ' + GUIDToString(drive.VolumeGUID), drive)
78
        nDrive := TreeView1.Items.AddChildObject(localRecyclersNode, Format(S_DRIVE, [drive.DriveLetter])+': ' + GUIDToString(drive.VolumeGUID), drive)
74
      else
79
      else
75
        nDrive := TreeView1.Items.AddChildObject(localRecyclersNode, 'Drive '+drive.DriveLetter+':', drive);
80
        nDrive := TreeView1.Items.AddChildObject(localRecyclersNode, Format(S_DRIVE, [drive.DriveLetter])+':', drive);
76
      nDrive.ImageIndex := 6;
81
      nDrive.ImageIndex := 6;
77
      nDrive.SelectedIndex := nDrive.ImageIndex;
82
      nDrive.SelectedIndex := nDrive.ImageIndex;
78
 
83
 
79
      bins.Clear;
84
      bins.Clear;
80
      if CheckBox1.Checked then
85
      if CheckBox1.Checked then
Line 93... Line 98...
93
        bin.ListItems(items);
98
        bin.ListItems(items);
94
        for iItem := 0 to items.Count - 1 do
99
        for iItem := 0 to items.Count - 1 do
95
        begin
100
        begin
96
          item := items.Items[iItem] as TRbRecycleBinItem;
101
          item := items.Items[iItem] as TRbRecycleBinItem;
97
 
102
 
98
          if not FileExists(item.PhysicalFile) and CheckBox2.Checked then continue;
103
          if not FileExists(item.PhysicalFile) and
-
 
104
             not DirectoryExists(item.PhysicalFile) and
-
 
105
             CheckBox2.Checked then continue;
99
 
106
 
-
 
107
          sCaption := item.Source;
-
 
108
          if item.IndexFile <> '' then sCaption := sCaption + ' ('+ExtractFileName(item.IndexFile)+')';
100
          nItem := TreeView1.Items.AddChildObject(nBin, item.Source, bin);
109
          nItem := TreeView1.Items.AddChildObject(nBin, sCaption, bin);
101
 
110
 
102
          if FileExists(item.PhysicalFile) then
111
          if FileExists(item.PhysicalFile) then
103
            nItem.ImageIndex := 0
112
            nItem.ImageIndex := 0
-
 
113
          else if DirectoryExists(item.PhysicalFile) then
-
 
114
            nItem.ImageIndex := 10 // TODO: Feature: Read folder contents and display them in this graph. (Also change icon to "open folder")
104
          else
115
          else
105
            nItem.ImageIndex := 8;
116
            nItem.ImageIndex := 8;
106
          nItem.SelectedIndex := nItem.ImageIndex;
117
          nItem.SelectedIndex := nItem.ImageIndex;
107
        end;
118
        end;
108
      end;
119
      end;
Line 124... Line 135...
124
 
135
 
125
  items: TObjectList{TRbRecycleBinItem};
136
  items: TObjectList{TRbRecycleBinItem};
126
  iItem: integer;
137
  iItem: integer;
127
  item: TRbRecycleBinItem;
138
  item: TRbRecycleBinItem;
128
  nItem: TTreeNode;
139
  nItem: TTreeNode;
-
 
140
  sCaption: string;
129
begin
141
begin
130
  bin := TRbRecycleBin.Create(LabeledEdit1.Text);
142
  bin := TRbRecycleBin.Create(LabeledEdit1.Text);
131
 
143
 
132
  nBin := TreeView1.Items.AddChildObject(individualRecyclersNode, bin.FileOrDirectory, bin);
144
  nBin := TreeView1.Items.AddChildObject(individualRecyclersNode, bin.FileOrDirectory, bin);
133
  individualRecyclersNode.Expand(false);
145
  individualRecyclersNode.Expand(false);
Line 138... Line 150...
138
    bin.ListItems(items);
150
    bin.ListItems(items);
139
    for iItem := 0 to items.Count - 1 do
151
    for iItem := 0 to items.Count - 1 do
140
    begin
152
    begin
141
      item := items.Items[iItem] as TRbRecycleBinItem;
153
      item := items.Items[iItem] as TRbRecycleBinItem;
142
 
154
 
143
      if not FileExists(item.PhysicalFile) and CheckBox2.Checked then continue;
155
      if not FileExists(item.PhysicalFile) and
-
 
156
         not DirectoryExists(item.PhysicalFile) and
-
 
157
         CheckBox2.Checked then continue;
144
 
158
 
-
 
159
      sCaption := item.Source;
-
 
160
      if item.IndexFile <> '' then sCaption := sCaption + ' ('+ExtractFileName(item.IndexFile)+')';
145
      nItem := TreeView1.Items.AddChildObject(nBin, item.Source, bin);
161
      nItem := TreeView1.Items.AddChildObject(nBin, sCaption, bin);
146
 
162
 
147
      if FileExists(item.PhysicalFile) then
163
      if FileExists(item.PhysicalFile) then
148
        nItem.ImageIndex := 0
164
        nItem.ImageIndex := 0
-
 
165
      else if DirectoryExists(item.PhysicalFile) then
-
 
166
        nItem.ImageIndex := 10 // TODO: Feature: Read folder contents and display them in this graph. (Also change icon to "open folder")
149
      else
167
      else
150
        nItem.ImageIndex := 8;
168
        nItem.ImageIndex := 8;
151
      nItem.SelectedIndex := nItem.ImageIndex;
169
      nItem.SelectedIndex := nItem.ImageIndex;
152
    end;
170
    end;
153
  finally
171
  finally
Line 156... Line 174...
156
 
174
 
157
  nBin.Expand(false);
175
  nBin.Expand(false);
158
end;
176
end;
159
 
177
 
160
procedure TRecyclerListingMainForm.FormShow(Sender: TObject);
178
procedure TRecyclerListingMainForm.FormShow(Sender: TObject);
-
 
179
resourcestring
-
 
180
  S_LOCAL_RECYCLE_BINS = 'Local recycle bins';
-
 
181
  S_MANUAL_RECYCLE_BINS ='Manually added recycle bins';
161
begin
182
begin
162
  localRecyclersNode := TreeView1.Items.Add(nil, 'Local recyclers');
183
  localRecyclersNode := TreeView1.Items.Add(nil, S_LOCAL_RECYCLE_BINS);
163
  localRecyclersNode.ImageIndex := 2;
184
  localRecyclersNode.ImageIndex := 2;
164
  localRecyclersNode.SelectedIndex := localRecyclersNode.ImageIndex;
185
  localRecyclersNode.SelectedIndex := localRecyclersNode.ImageIndex;
165
 
186
 
166
  individualRecyclersNode := TreeView1.Items.Add(nil, 'Manually added recycle bins');
187
  individualRecyclersNode := TreeView1.Items.Add(nil, S_MANUAL_RECYCLE_BINS);
167
  individualRecyclersNode.ImageIndex := 2;
188
  individualRecyclersNode.ImageIndex := 2;
168
  individualRecyclersNode.SelectedIndex := individualRecyclersNode.ImageIndex;
189
  individualRecyclersNode.SelectedIndex := individualRecyclersNode.ImageIndex;
169
end;
190
end;
170
 
191
 
171
end.
192
end.