ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Helper/WhatLinksHere.pas
(Generate patch)

Comparing oup/current/Helper/WhatLinksHere.pas (file contents):
Revision 109 by alloc, Wed Feb 21 03:12:33 2007 UTC vs.
Revision 114 by alloc, Mon Feb 26 22:52:09 2007 UTC

# Line 2 | Line 2 | unit WhatLinksHere;
2   interface
3   uses
4    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5 <  Dialogs, StdCtrls, Template;
5 >  Dialogs, StdCtrls, Template, ExtCtrls;
6  
7   type
8    TForm_WhatLinksHere = class(TForm)
9 <    list: TListBox;
9 >    Panel1: TPanel;
10 >    list_from: TListBox;
11      label_what: TLabel;
12 +    Panel2: TPanel;
13 +    label_to: TLabel;
14 +    list_to: TListBox;
15 +    Splitter1: TSplitter;
16      procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
17      procedure FormShow(Sender: TObject);
18 <    procedure listDblClick(Sender: TObject);
18 >    procedure list_fromDblClick(Sender: TObject);
19    private
20    public
21      SenderForm: TForm_ToolTemplate;
# Line 41 | Line 46 | var
46    links: TLinks;
47    i: Integer;
48    fullname: String;
49 +  links_to: TDatLinkList;
50   begin
51    Form_Main.Enabled := False;
52 <  list.Items.Clear;
52 >  list_from.Items.Clear;
53 >  list_to.Items.Clear;
54    fileinfo := ConManager.Connection[ConID].GetFileInfo(FileID);
55    label_what.Caption := FormatNumber(fileinfo.ID, 5, '0') + '-' +
56        fileinfo.Name + '.' + fileinfo.Extension;
57 <  links := TAccess_OUP_ADB(ConManager.Connection[ConID]).GetLinksToFile(fileinfo.ID);
58 <  if Length(links.ByID) > 0 then
59 <    for i := 0 to High(links.ByID) do
57 >  links_to := ConManager.Connection[ConID].GetDatLinks(fileinfo.ID);
58 >  if ConManager.Connection[ConID] is TAccess_OUP_ADB then begin
59 >    links := TAccess_OUP_ADB(ConManager.Connection[ConID]).GetLinksToFile(fileinfo.ID);
60 >    if Length(links.ByID) > 0 then
61 >      for i := 0 to High(links.ByID) do
62 >      begin
63 >        fileinfo := ConManager.Connection[ConID].GetFileInfo(links.ByID[i].Destination);
64 >        fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension;
65 >        list_from.Items.Add(fullname + ' (Offset 0x' + IntToHex(links.ByID[i].SrcOffset, 8) + ')');
66 >      end;
67 >  end;
68 >  if Length(links_to) > 0 then
69 >  begin
70 >    for i := 0 to High(links_to) do
71      begin
72 <      fileinfo := ConManager.Connection[ConID].GetFileInfo(links.ByID[i].Destination);
73 <      fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension;
74 <      list.Items.Add(fullname + ' (Offset 0x' + IntToHex(links.ByID[i].SrcOffset, 8) + ')');
72 >      if links_to[i].DestID >= 0 then
73 >      begin
74 >        fileinfo := ConManager.Connection[ConID].GetFileInfo(links_to[i].DestID);
75 >        fullname := FormatNumber(fileinfo.ID, 5, '0') + '-' + fileinfo.Name + '.' + fileinfo.Extension;
76 >      end else
77 >        fullname := 'no link';
78 >      list_to.Items.Add(fullname + ' (Offset 0x' + IntToHex(links_to[i].SrcOffset, 8) + ')');
79      end;
80 +  end;
81   end;
82  
83 < procedure TForm_WhatLinksHere.listDblClick(Sender: TObject);
83 > procedure TForm_WhatLinksHere.list_fromDblClick(Sender: TObject);
84   var
85    id: Integer;
86 +  box: TListBox;
87 +  name: String;
88   begin
89 <  id := ConManager.Connection[ConID].ExtractFileIDOfName(list.Items.Strings[list.ItemIndex]);
89 >  box := TListBox(Sender);
90 >  name := box.Items.Strings[box.ItemIndex];
91 >  if Pos('no link', name) > 0 then
92 >    Exit
93 >  else
94 >    id := ConManager.Connection[ConID].ExtractFileIDOfName(name);
95    SenderForm.SelectFileID(ConID, id);
96    Form_Main.Enabled := True;
97    Visible := False;

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)