OSDN Git Service

・アドレスバーにプラグインを使用した板のアドレスを入力し、移動ボタンを押すと、
authoryoffy <yoffy>
Sun, 23 Nov 2003 11:20:07 +0000 (11:20 +0000)
committeryoffy <yoffy>
Sun, 23 Nov 2003 11:20:07 +0000 (11:20 +0000)
 IE が立ち上がることなくその板がギコナビで表示されるようになった。
 ※プラグインを使用しない場合は未対応。

Giko.pas

index 11cf000..afb24e0 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -6018,60 +6018,72 @@ begin
                bi := High( BoardPlugIns );
                for i := Low( BoardPlugIns ) to bi do begin
                        if Assigned( Pointer( BoardPlugIns[ i ].Module ) ) then begin
-                               if BoardPlugIns[ i ].AcceptURL( URL ) = atThread then begin
-                                       tmpThread               := TThreadItem.Create( BoardPlugIns[ i ], URL );
-                                       boardURL                := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
-                                       Board                           := BBSsFindBoardFromURL( boardURL );
-                                       if Board = nil then begin
-                                               Board                                           := TBoard.Create( tmpThread.BoardPlugIn, boardURL );
-                                               category                                := TCategory.Create;
-                                               category.Title  := '(\96¼\8fÌ\95s\96¾)';
-                                               category.Add( Board );
-                                               // \81¦\8c\83\82µ\82­\95Û\97¯\92\86
-                                               //BBS2ch.Add( category );
-
-                                               if FTreeType = gtt2ch then begin
-                                                       // \94Â\83\8a\83X\83g\82É\93o\98^\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83c\83\8a\81[\82É\92Ç\89Á
-                                                       // SetBoardTreeNode; 1 \8ds\82Å\8dÏ\82Ü\82¹\82Ä\82à\82æ\82µ
-                                                       categoryNode                                                            := TreeView.Items.AddChild(
-                                                               TreeView.Items.GetFirstNode, category.Title );
-                                                       categoryNode.Data                                               := category;
-                                                       categoryNode.ImageIndex                 := ITEM_ICON_CATEGORY1;
-                                                       categoryNode.SelectedIndex      := ITEM_ICON_CATEGORY2;
-
-                                                       Board.BeginUpdate;
-                                                       boardNode                                                                               :=
-                                                               TreeView.Items.AddChild( categoryNode, Board.Title );
-                                                       boardNode.Data                                                  := Board;
-                                                       boardNode.ImageIndex                            := ITEM_ICON_BOARD1;
-                                                       boardNode.SelectedIndex                 := ITEM_ICON_BOARD2;
-                                                       Board.LoadSettings;
-                                                       Board.EndUpdate;
-                                               end;
-                                       end else begin
-                                               if not Board.IsThreadDatRead then
-                                                       GikoSys.ReadSubjectFile( Board );
-                                       end;
-
-                                       ThreadItem := Board.Find( tmpThread.FileName );
-                                       if ThreadItem = nil then begin
-                                               ThreadItem := tmpThread;
-                                               Board.Insert( 0, ThreadItem );
-                                               if ActiveList is TBoard then begin
-                                                       if TBoard(ActiveList) = Board then
-                                                               ListView.Items.Count := ListView.Items.Count + 1;
-                                               end;
-                                               InsertBrowserTab( ThreadItem );
-                                               DownloadContent( ThreadItem );
-                                       end else begin
-                                               tmpThread.Free;
-                                               InsertBrowserTab( ThreadItem );
-                                               if not ThreadItem.IsLogFile then
-                                                       DownloadContent( ThreadItem );
-                                       end;
-
-                                       Exit;
-                               end;
+                               case BoardPlugIns[ i ].AcceptURL( URL ) of
+                               atThread:
+          begin
+            tmpThread          := TThreadItem.Create( BoardPlugIns[ i ], URL );
+            boardURL           := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
+            Board                              := BBSsFindBoardFromURL( boardURL );
+            if Board = nil then begin
+              Board                                            := TBoard.Create( tmpThread.BoardPlugIn, boardURL );
+              category                         := TCategory.Create;
+              category.Title   := '(\96¼\8fÌ\95s\96¾)';
+              category.Add( Board );
+              // \81¦\8c\83\82µ\82­\95Û\97¯\92\86
+              //BBS2ch.Add( category );
+
+              if FTreeType = gtt2ch then begin
+                // \94Â\83\8a\83X\83g\82É\93o\98^\82³\82ê\82Ä\82¢\82È\82¢\82Ì\82Å\83c\83\8a\81[\82É\92Ç\89Á
+                // SetBoardTreeNode; 1 \8ds\82Å\8dÏ\82Ü\82¹\82Ä\82à\82æ\82µ
+                categoryNode                                                           := TreeView.Items.AddChild(
+                  TreeView.Items.GetFirstNode, category.Title );
+                categoryNode.Data                                              := category;
+                categoryNode.ImageIndex                        := ITEM_ICON_CATEGORY1;
+                categoryNode.SelectedIndex     := ITEM_ICON_CATEGORY2;
+
+                Board.BeginUpdate;
+                boardNode                                                                              :=
+                  TreeView.Items.AddChild( categoryNode, Board.Title );
+                boardNode.Data                                                 := Board;
+                boardNode.ImageIndex                           := ITEM_ICON_BOARD1;
+                boardNode.SelectedIndex                        := ITEM_ICON_BOARD2;
+                Board.LoadSettings;
+                Board.EndUpdate;
+              end;
+            end else begin
+              if not Board.IsThreadDatRead then
+                GikoSys.ReadSubjectFile( Board );
+            end;
+
+            ThreadItem := Board.Find( tmpThread.FileName );
+            if ThreadItem = nil then begin
+              ThreadItem := tmpThread;
+              Board.Insert( 0, ThreadItem );
+              if ActiveList is TBoard then begin
+                if TBoard(ActiveList) = Board then
+                  ListView.Items.Count := ListView.Items.Count + 1;
+              end;
+              InsertBrowserTab( ThreadItem );
+              DownloadContent( ThreadItem );
+            end else begin
+              tmpThread.Free;
+              InsertBrowserTab( ThreadItem );
+              if not ThreadItem.IsLogFile then
+                DownloadContent( ThreadItem );
+            end;
+
+            Exit;
+          end;
+
+        atBoard:
+               begin
+            Board := BBSsFindBoardFromURL( URL );
+            if Board <> nil then begin
+                               SelectTreeNode( Board, True );
+                   Exit;
+            end;
+          end;
+        end;
                        end;
                end;
        except