Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/FavoriteAdd.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.3.2.1 by yoffy, Mon Apr 19 22:46:48 2004 UTC revision 1.3.2.2 by yoffy, Thu Sep 9 16:20:30 2004 UTC
# Line 26  type Line 26  type
26                  { Private 宣言 }                  { Private 宣言 }
27                  FBoard: TBoard;                  FBoard: TBoard;
28                  FThreadItem: TThreadItem;                  FThreadItem: TThreadItem;
29                    procedure CopyTree( dst, src : TTreeNode );
30  //              procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);  //              procedure PrepareFavoriteTree(Favo: TFavoriteItem; Node: TTreeNode);
31                  function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;                  function GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
32          public          public
# Line 43  uses Giko; Line 44  uses Giko;
44    
45  {$R *.dfm}  {$R *.dfm}
46    
47    procedure TFavoriteAddDialog.CopyTree( dst, src : TTreeNode );
48    var
49            newNode : TTreeNode;
50    begin
51            while src <> nil do begin
52                    if TObject( src.Data ) is TFavoriteFolder then begin
53                            newNode := FolderTreeView.Items.AddChildObject( dst, src.Text, src.Data );
54                            newNode.ImageIndex              := src.ImageIndex;
55                            newNode.SelectedIndex   := src.SelectedIndex;
56                            CopyTree( newNode, src.getFirstChild );
57                    end;
58                    src := src.getNextSibling;
59            end;
60    end;
61    
62  procedure TFavoriteAddDialog.FormCreate(Sender: TObject);  procedure TFavoriteAddDialog.FormCreate(Sender: TObject);
63  var  var
64          i: Integer;          src             : TTreeNode;
65            node    : TTreeNode;
66  begin  begin
67          FolderTreeView.Items.BeginUpdate;          FolderTreeView.Items.BeginUpdate;
68          FolderTreeView.Items := FavoriteDM.TreeView.Items;  
69          for i := FolderTreeView.Items.Count - 1 downto 0 do begin          // FavoriteDM のフォルダ階層をコピー
70                  if not (TObject(FolderTreeView.Items[i].Data) is TFavoriteFolder) then          FolderTreeView.Items.Clear;
71                          FolderTreeView.Items[i].Delete;          src             := FavoriteDM.TreeView.Items.GetFirstNode;
72          end;          node    := TTreeNode.Create( FolderTreeView.Items );
73            node := FolderTreeView.Items.AddFirst( node, src.Text );
74            node.Data                                               := src.Data;
75            node.ImageIndex                 := src.ImageIndex;
76            node.SelectedIndex      := src.SelectedIndex;
77            CopyTree( node, src.getFirstChild );
78    
79          if FolderTreeView.Items.GetFirstNode <> nil then begin          if FolderTreeView.Items.GetFirstNode <> nil then begin
80                  FolderTreeView.Items.GetFirstNode.Expanded := True;                  FolderTreeView.Items.GetFirstNode.Expanded := True;
81                  FolderTreeView.Items.GetFirstNode.Selected := True;                  FolderTreeView.Items.GetFirstNode.Selected := True;
82          end;          end;
83      FolderTreeView.Items.EndUpdate;          FolderTreeView.Items.EndUpdate;
84    
85  {       Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title);  {       Node := FolderTreeView.Items.AddChild(nil, GikoForm.Favorite.Root.Title);
86          Node.ImageIndex := 0;          Node.ImageIndex := 0;
# Line 91  end;} Line 113  end;}
113    
114  procedure TFavoriteAddDialog.OKButtonClick(Sender: TObject);  procedure TFavoriteAddDialog.OKButtonClick(Sender: TObject);
115  var  var
116          i: Integer;          Node                                            : TTreeNode;
117          Node: TTreeNode;          NewNode                                 : TTreeNode;
118          FavoBoardItem: TFavoriteBoardItem;          FavoBoardItem           : TFavoriteBoardItem;
119          FavoThreadItem: TFavoriteThreadItem;          FavoThreadItem  : TFavoriteThreadItem;
120          FavNode: TTreeNode;          FavNode                                 : TTreeNode;
121  begin  begin
122          if FolderTreeView.Selected = nil then          if FolderTreeView.Selected = nil then
123                  Exit;                  Exit;
     Node := nil;  
         for i := 0 to FolderTreeView.Items.Count - 1 do begin  
124    
125                  FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Data);          Node            := FolderTreeView.Items.GetFirstNode;
126            while Node <> nil do begin
127                    FavNode := GetGikoFavoriteNode(Node.Data);
128                  if FavNode = nil then begin                  if FavNode = nil then begin
129                          FavNode := GetGikoFavoriteNode(FolderTreeView.Items[i].Parent.Data);                          if Node.Parent <> nil then
130                          if FavNode <> nil then                                  FavNode := GetGikoFavoriteNode(Node.Parent.Data);
131                                  Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, FolderTreeView.Items[i].Text, FolderTreeView.Items[i].Data);                          if FavNode <> nil then begin
132                                  Node.ImageIndex := 14;                                  NewNode := FavoriteDM.TreeView.Items.AddChildObject(FavNode, Node.Text, Node.Data);
133                                  Node.SelectedIndex := 14;                                  NewNode.ImageIndex := 14;
134                                    NewNode.SelectedIndex := 14;
135                            end;
136                  end;                  end;
137                    Node := Node.GetNext;
138          end;          end;
139    
   
140          FavNode := GetGikoFavoriteNode(FolderTreeView.Selected.Data);          FavNode := GetGikoFavoriteNode(FolderTreeView.Selected.Data);
141          if FavNode <> nil then begin          if FavNode <> nil then begin
142                  if FBoard <> nil then begin                  if FBoard <> nil then begin
143                          FavoBoardItem := TFavoriteBoardItem.Create( FBoard.URL, FBoard.Title, FBoard );                          FavoBoardItem := TFavoriteBoardItem.Create( FBoard.URL, FBoard.Title, FBoard );
144                          Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoBoardItem);                          NewNode := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoBoardItem);
145                          Node.ImageIndex := 15;                          NewNode.ImageIndex := 15;
146                          Node.SelectedIndex := 15;                          NewNode.SelectedIndex := 15;
147                  end else if FThreadItem <> nil then begin                  end else if FThreadItem <> nil then begin
148                          FavoThreadItem := TFavoriteThreadItem.Create( FThreadItem.URL, FThreadItem.Title, FThreadItem );                          FavoThreadItem := TFavoriteThreadItem.Create( FThreadItem.URL, FThreadItem.Title, FThreadItem );
149                          Node := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoThreadItem);                          NewNode := FavoriteDM.TreeView.Items.AddChildObject(FavNode, CaptionEdit.Text, FavoThreadItem);
150                          Node.ImageIndex := 16;                          NewNode.ImageIndex := 16;
151                          Node.SelectedIndex := 16;                          NewNode.SelectedIndex := 16;
152                  end;                  end;
153          end;          end;
154    
# Line 187  end; Line 211  end;
211    
212  function TFavoriteAddDialog.GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;  function TFavoriteAddDialog.GetGikoFavoriteNode(FavFolder: TFavoriteFolder): TTreeNode;
213  var  var
214          i: Integer;          Node    : TTreeNode;
215  begin  begin
216          Result := nil;          Result  := nil;
217          for i := 0 to FavoriteDM.TreeView.Items.Count - 1 do begin          Node            := FavoriteDM.TreeView.Items.GetFirstNode;
218                  if FavoriteDM.TreeView.Items[i].Data = FavFolder then begin          while Node <> nil do begin
219                          Result := FavoriteDM.TreeView.Items[i];                  if Node.Data = FavFolder then begin
220                            Result := Node;
221                          Exit;                          Exit;
222                  end;                  end;
223                    Node := Node.GetNext;
224          end;          end;
225  end;  end;
226    

Legend:
Removed from v.1.3.2.1  
changed lines
  Added in v.1.3.2.2

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26