OSDN Git Service

ローカルルール関係の基礎作り
[gikonavigoeson/gikonavi.git] / Giko.pas
index 2c98fb0..54c6a40 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -2911,8 +2911,9 @@ begin
                        if (PathRec.FNoParam) then begin
                                PathRec.FSt := 1;
                                PathRec.FTo := 1;
-                       end else
+                       end else begin
                                Gikosys.GetPopupResNumber(URL,PathRec.FSt,PathRec.FTo);
+                       end;
                        GikoSys.ParseURI( URL, Protocol, Host, Path, Document, Port, Bookmark );
 
                        if PathRec.FDone or (not GikoSys.Is2chHost( Host )) then begin
@@ -2939,10 +2940,10 @@ begin
                                //      wkIntTo := 1;
                                //if PathRec.FFirst then
                                //      wkIntSt := 1;
-                               if PathRec.FStBegin then
-                                       wkIntSt := 1;
-                               if PathRec.FToEnd then
-                                       wkIntTo := 9999;
+                               //if PathRec.FStBegin then //http://\81`\81`\81`\81`/-50\82Æ\82¢\82¤\82Æ\82«
+                               //      wkIntSt := 1;          //
+                               //if PathRec.FToEnd then   //http://\81`\81`\81`\81`/50-\82Æ\82¢\82¤\82Æ\82«
+                               //      wkIntTo := 9999;       // \82Ç\82¿\82ç\82Ì\8fê\8d\87\82à\81AGetPopupResNumber\82Å\82¤\82Ü\82­\94Ô\8d\86\82ð\92²\90®\82·\82é\82Ì\82Å\82Ó\82æ\82¤\81B
 
                                //ATitle := ActiveFileName <> PathRec.FKey;
                                if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then
@@ -3670,7 +3671,7 @@ begin
                for i := 0 to BrowserTab.Tabs.Count - 1 do begin
                        if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin
                                if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin
-                                       Result := TBrowserRecord( BrowserTab.Tabs.Objects[j] );
+                                       Result := TBrowserRecord( BrowserTab.Tabs.Objects[i] );
                                        if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = nil then begin
                                                for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
                                                        if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[BROWSER_COUNT - 1]) then begin
@@ -3858,11 +3859,13 @@ begin
 
 
        try
+               {
                if ThreadItem.UnRead then begin
                        ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
                        if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;
                        TreeView.Refresh;
                end;
+        }
                if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin
                        if (FActiveContent.Browser <> BrowserNullTab.Browser) then
                                ShowWindow(FActiveContent.Browser.Handle, SW_HIDE);
@@ -4005,12 +4008,16 @@ end;
 procedure TGikoForm.SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean);
 var
        Board: TBoard;
+       i: Integer;
 begin
        if ActiveList is TBoard then begin
+               for i := Length( BBSs ) - 1 downto 0 do begin
+                       BBSs[i].SelectText := SelectText;
+                       BBSs[i].KubetsuChk := KubetsuChk;
+               end;
                Board := TBoard(ActiveList);
-
-               Board.ParentCategory.ParenTBBS.SelectText := SelectText;
-               Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk;
+//             Board.ParentCategory.ParenTBBS.SelectText := SelectText;
+//             Board.ParentCategory.ParenTBBS.KubetsuChk := KubetsuChk;
 //             Board.SelectText := SelectText;
 //             Board.KubetsuChk := KubetsuChk;
                ViewType := AViewType;
@@ -6688,10 +6695,20 @@ begin
                        threadItem := BrowserRecord.Thread;
 
                        if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin
+                               if threadItem.UnRead then begin
+                                       threadItem.UnRead := False;
+                                       threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
+                                       if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0;
+                                       TreeView.Refresh;
+                                       ListView.Refresh;
+                               end;
                                BrowserMovement( BrowserRecord.Movement, BrowserRecord );
                                BrowserRecord.Movement := '';
                        end else if threadItem.UnRead then begin
                                threadItem.UnRead := False;
+                               threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
+                               if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0;
+                               TreeView.Refresh;
                                BrowserMovement( 'new', BrowserRecord );
                                ListView.Refresh;
                        end else if threadItem.ScrollTop <> 0 then begin
@@ -7524,6 +7541,7 @@ begin
                                                boardURL                := tmpThread.BoardPlugIn.GetBoardURL( DWORD( tmpThread ) );
                                                Board                           := BBSsFindBoardFromURL( boardURL );
                                                if Board = nil then begin
+                            //break;
                                                        // \81¦\8dì\82Á\82Ä\82à\92Ç\89Á\82·\82é\82Æ\82±\82ë\82ª\96³\82¢\82Ì\82Å\8c\83\82µ\82­\95Û\97¯
                                                        //GikoSys.OpenBrowser(inURL, gbtUserApp);
                                                        //Exit;
@@ -7537,38 +7555,35 @@ begin
                                                                GikoSys.ReadSubjectFile( Board );
                                                                Exit;
                                                        end;
-                                               end;
-
-                                               ThreadItem := Board.FindThreadFromFileName( 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;
-                                                       GikoSys.GetPopupResNumber( inURL, stRes, edRes );
-                                                       browserRec := InsertBrowserTab( ThreadItem );
-                                                       if (browserRec <> nil) and (stRes > 0) then
-                                                               browserRec.Movement := IntToStr( stRes );
-                                                       DownloadContent( ThreadItem );
-                                                       Exit;
-                                               end else begin
-                                                       tmpThread.Free;
-                                                       GikoSys.GetPopupResNumber( inURL, stRes, edRes );
-                                                       browserRec := InsertBrowserTab( ThreadItem );
-                                                       if ThreadItem.IsLogFile then begin
-                                                               if (browserRec <> nil) and (stRes > 0) then
-                                                                       BrowserMovement( IntToStr( stRes ), browserRec );
-                                                       end else begin
+                                                       ThreadItem := Board.FindThreadFromFileName( 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;
+                                                               GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+                                                               browserRec := InsertBrowserTab( ThreadItem );
                                                                if (browserRec <> nil) and (stRes > 0) then
                                                                        browserRec.Movement := IntToStr( stRes );
                                                                DownloadContent( ThreadItem );
+                                                               Exit;
+                                                       end else begin
+                                                               tmpThread.Free;
+                                                               GikoSys.GetPopupResNumber( inURL, stRes, edRes );
+                                                               browserRec := InsertBrowserTab( ThreadItem );
+                                                               if ThreadItem.IsLogFile then begin
+                                                                       if (browserRec <> nil) and (stRes > 0) then
+                                                                               BrowserMovement( IntToStr( stRes ), browserRec );
+                                                               end else begin
+                                                                       if (browserRec <> nil) and (stRes > 0) then
+                                                                               browserRec.Movement := IntToStr( stRes );
+                                                                       DownloadContent( ThreadItem );
+                                                               end;
+                                                               Exit;
                                                        end;
-                                                       Exit;
                                                end;
-
-                                               //Exit;
                                        end;
 
                                atBoard:
@@ -8995,9 +9010,10 @@ begin
                ModifySelectList;
        end else if Length( SelectComboBox.Text ) = 0 then
        begin
-               AllItemAction.Checked := True;
-               LogItemAction.Checked := False;
-               NewItemAction.Checked := False;
+               {* SelectComboBox.Text\82ª\8bó\82Å\82à\81A\93ü\97Í\93r\92\86\82ÅEsc\82µ\82½\82Æ\82©
+                * \8bó\82Ì\82Æ\82«\82ÉDel\83L\81[\82ð\89\9f\82µ\82½\82Æ\82©\82È\82Ì\82Å\81A\83X\83\8c\82Ì\8di\8d\9e\82Ý\82ð\88Û\8e\9d\82·\82é\81B
+                * \81i\82±\82±\82Å\82Í\89½\82à\82µ\82È\82¢\81j
+                *}
        end else begin
                // \83`\83\89\82Â\82­\82Æ\8c\99\82¾\82©\82ç\81A\88ê\89\9e\89\9f\82µ\82Ä\82 \82é\82Æ\82«\82¾\82¯\8f\88\97\9d\82·\82é
                if AllItemAction.Checked then
@@ -11149,12 +11165,16 @@ begin
                SelectListItem(List);
                for i := 0 to List.Count - 1 do begin
                        if TObject(List[i]) is TThreadItem then begin
-                               TThreadItem(List[i]).UnRead := false;
-                               TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
+                               if (TThreadItem(List[i]).UnRead) then begin
+                                       TThreadItem(List[i]).UnRead := false;
+                                       TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead - 1;
+                               end;
                        end;
                end;
                if TreeView.Visible then
                        TreeView.Refresh;
+               if ListView.Visible then
+               ListView.Refresh;
        finally
                List.Free;
        end;
@@ -11170,12 +11190,16 @@ begin
                SelectListItem(List);
                for i := 0 to List.Count - 1 do begin
                        if TObject(List[i]) is TThreadItem then begin
-                               TThreadItem(List[i]).UnRead := true;
-                               TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
+                               if (TThreadItem(List[i]).IsLogFile) and (not TThreadItem(List[i]).UnRead) then begin
+                                       TThreadItem(List[i]).UnRead := true;
+                                       TThreadItem(List[i]).ParentBoard.UnRead := TThreadItem(List[i]).ParentBoard.UnRead + 1;
+                               end;
                        end;
                end;
                if TreeView.Visible then
                        TreeView.Refresh;
+               if ListView.Visible then
+               ListView.Refresh;
        finally
                List.Free;
        end;