OSDN Git Service

Folder.idxファイル読み込み時にdatファイルをチェックしないオプションを追加
authorh677 <h677>
Wed, 1 Aug 2007 15:02:42 +0000 (15:02 +0000)
committerh677 <h677>
Wed, 1 Aug 2007 15:02:42 +0000 (15:02 +0000)
最小化時にブラウザがスクロールしそうな部分に手を入れてみた。

Giko.pas
GikoSystem.pas
KuroutSetting.dfm
KuroutSetting.pas
Setting.pas
gikoNavi.res

index 6c8155c..4544e12 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -2791,6 +2791,12 @@ begin
        ThreadTitle := Thread.Thread.Title;
        ThreadPTitle := Thread.Thread.ParentBoard.Title;
        //ThreadScrollTop := Thread.Thread.ScrollTop;
+    if Thread.Thread.IsLogFile then  begin
+        if not FileExists(Thread.Thread.GetThreadFileName) then begin
+            Thread.Thread.DeleteLogFile;
+        end;
+    end;
+
        ThreadIsLog := Thread.Thread.IsLogFile;
        ThreadItem := Thread.Thread;
        ThreadNewArraical :=  Thread.Thread.NewArrival;
@@ -6969,10 +6975,11 @@ end;
 
 procedure TGikoForm.BrowserPanelResize(Sender: TObject);
 begin
-       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
-               MoveWindow(FActiveContent.Browser.Handle, 0, 0, BrowserPanel.ClientWidth, BrowserPanel.ClientHeight, false);
-       end;
-
+    if (FIsMinimize <> mtMinimizing) then begin
+       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
+               MoveWindow(FActiveContent.Browser.Handle, 0, 0, BrowserPanel.ClientWidth, BrowserPanel.ClientHeight, false);
+       end;
+    end;
 end;
 procedure TGikoForm.CoolBarResized(Sender: TObject; CoolBar: TCoolBar);
 var
@@ -7659,8 +7666,6 @@ end;
 //! \83t\83@\83C\83\8b\83`\83F\83b\83N
 function TGikoForm.isValidFile(FileName: String) : boolean;
 var
-    tmp: String;
-       unixtime: Int64;
     dt: TDateTime;
 begin
     Result := True;
index 5616881..6e99c33 100644 (file)
@@ -571,11 +571,18 @@ var
        usePlugIn : Boolean;
        islog : Boolean;
     urlHead: String;
+    datFileCheck: Boolean;
        {*
        FavoThreadItem : TFavoriteThreadItem;
        Node: TTreeNode;
        *}
+{$IFDEF DEBUG}
+    st, rt: Cardinal;
+{$ENDIF}
 begin
+{$IFDEF DEBUG}
+       st := GetTickCount;
+{$ENDIF}
        if Board.IsThreadDatRead then
                Exit;
        Board.Clear;
@@ -591,12 +598,16 @@ begin
 
        FileName := Board.GetFolderIndexFileName;
 
-       FileList := TStringList.Create;
-       FileList.Sorted := True;
-       FileList.BeginUpdate;
-       //IsLogFile\97pDAT\83t\83@\83C\83\8b\83\8a\83X\83g
-       GetFileList(ExtractFileDir(Board.GetFolderIndexFileName), '*.dat', FileList, False);
-       FileList.EndUpdate;
+    //
+    datFileCheck := (Setting.CheckDatFile) or (not FileExists(FileName));
+    if (datFileCheck) then begin
+        FileList := TStringList.Create;
+        FileList.Sorted := True;
+        FileList.BeginUpdate;
+        //IsLogFile\97pDAT\83t\83@\83C\83\8b\83\8a\83X\83g
+        GetFileList(ExtractFileDir(Board.GetFolderIndexFileName), '*.dat', FileList, False);
+        FileList.EndUpdate;
+    end;
 
        // \8fd\95¡\82ð\96h\82®
        Board.BeginUpdate;
@@ -608,7 +619,11 @@ begin
                        //\82Q\8ds\96Ú\82©\82ç\81i\82P\8ds\96Ú\82Í\83o\81[\83W\83\87\83\93\81j
                        for i := sl.Count - 1 downto 1 do begin
                                Rec := ParseIndexLine(sl[i]);
-                               islog := FileList.Find( Rec.FFileName, Index );
+                if (datFileCheck) then begin
+                               islog := FileList.Find( Rec.FFileName, Index );
+                end else begin
+                    islog := (Rec.FSize <> 0) and (Rec.FCount <> 0);
+                end;
                                if usePlugIn then
                                        ThreadItem := TThreadItem.Create(
                                                        Board.BoardPlugIn,
@@ -635,7 +650,7 @@ begin
                                end;
 
                                ThreadItem.BeginUpdate;
-                               if islog then
+                               if (datFileCheck) and (islog) then
                                        FileList.Delete( Index );
 
                                ThreadItem.No := Rec.FNo;
@@ -670,18 +685,26 @@ begin
                if UnRead <> Board.UnRead then
                        Board.UnRead := UnRead;
 
-               //\83C\83\93\83f\83b\83N\83X\82É\96³\82©\82Á\82½\83\8d\83O\82ð\92Ç\89Á\81i\95\85\82ê\83C\83\93\83f\83b\83N\83X\91Î\89\9e\81j
-        AddOutofIndexDat(Board, FileList);
+        if (datFileCheck) then begin
+                   //\83C\83\93\83f\83b\83N\83X\82É\96³\82©\82Á\82½\83\8d\83O\82ð\92Ç\89Á\81i\95\85\82ê\83C\83\93\83f\83b\83N\83X\91Î\89\9e\81j
+            AddOutofIndexDat(Board, FileList);
+        end;
                Board.EndUpdate;
 
         //\91O\89ñ\88Ù\8fí\8fI\97¹\8e\9e\83`\83F\83b\83N
         RestoreThreadData( Board );
        finally
                sl.Free;
-               FileList.Free;
+        if (datFileCheck) then begin
+               FileList.Free;
+        end;
                Board.Sorted := False;
        end;
        Board.IsThreadDatRead := True;
+{$IFDEF DEBUG}
+       rt := GetTickCount - st;
+       Writeln('Read Done.' + IntToStr(rt) + ' ms');
+{$ENDIF}
 end;
 {!
 \brief \83C\83\93\83f\83b\83N\83X\82É\82È\82¢dat\81i\82Í\82®\82êdat\81j\82Ì\92Ç\89Á
@@ -3327,7 +3350,8 @@ begin
                                        ThreadItem.NewReceive := ini.ReadInteger(SECTION, 'NewReceive', 0);
 
                                        ThreadItem.Size := ini.ReadInteger(SECTION, 'Size', 0);
-                                       if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin
+                    ThreadItem.IsLogFile := FileExists(ThreadItem.GetThreadFileName);
+                                       if(ThreadItem.Size = 0) and (ThreadItem.IsLogFile) then begin
                                                try
                                                        ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count;
                                                except
index e19c812..4dfd486 100644 (file)
@@ -21,8 +21,8 @@ object KuroutOption: TKuroutOption
     Top = 0
     Width = 517
     Height = 393
-    ActivePage = KakikomiTabSheet
-    TabIndex = 2
+    ActivePage = TabSheet2
+    TabIndex = 3
     TabOrder = 0
     object TabSheet1: TTabSheet
       Caption = #35443#32048#35373#23450#65297
@@ -562,6 +562,22 @@ object KuroutOption: TKuroutOption
           TabOrder = 1
         end
       end
+      object LogGroupBox: TGroupBox
+        Left = 16
+        Top = 160
+        Width = 465
+        Height = 65
+        Caption = #12525#12464
+        TabOrder = 1
+        object CheckDatFileCheckBox: TCheckBox
+          Left = 22
+          Top = 14
+          Width = 369
+          Height = 17
+          Caption = #12473#12524#12483#12489#19968#35239#65288'Folder.idx'#65289#35501#12415#36796#12415#26178#12395'dat'#12501#12449#12452#12523#12434#12481#12455#12483#12463#12377#12427#12290
+          TabOrder = 0
+        end
+      end
     end
   end
   object OkBotton: TButton
index d59f7ff..845f43b 100644 (file)
@@ -81,6 +81,8 @@ type
     Label14: TLabel;
     ExtListLabeledEdit: TLabeledEdit;
     Label15: TLabel;
+    LogGroupBox: TGroupBox;
+    CheckDatFileCheckBox: TCheckBox;
        procedure OkBottonClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure CDeleteButtonClick(Sender: TObject);
@@ -156,6 +158,8 @@ begin
     ReplaceDatCheckBox.Checked := GikoSys.Setting.ReplaceDat;
     SentIniFileSizeUpDown.Position := GikoSys.Setting.SentIniFileSize;
     ExtListLabeledEdit.Text := GikoSys.Setting.ExtList;
+    // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
+    CheckDatFileCheckBox.Checked := GikoSys.Setting.CheckDatFile;
 end;
 
 procedure TKuroutOption.SaveSetting;
@@ -198,6 +202,8 @@ begin
     GikoSys.Setting.ReplaceDat := ReplaceDatCheckBox.Checked;
     GikoSys.Setting.SentIniFileSize := SentIniFileSizeUpDown.Position;
     GikoSys.Setting.ExtList := ExtListLabeledEdit.Text;
+    // Folder.idx\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83`\83F\83b\83N
+    GikoSys.Setting.CheckDatFile := CheckDatFileCheckBox.Checked;
 end;
 
 procedure TKuroutOption.RecvBufferSizeExit(Sender: TObject);
index be1ab3c..701a693 100644 (file)
@@ -450,6 +450,8 @@ type
         FExtList: String;
         //! Skin\8aÖ\98A
         FSkinFiles: TSkinFiles;
+        //! index\83t\83@\83C\83\8b\82ð\93Ç\82Ý\8e\9e\82Édat\82ð\8c\9f\8dõ\82·\82é
+        FCheckDatFile: Boolean;
                function GetMainCoolSet(Index: Integer): TCoolSet;
                function GetBoardCoolSet(Index: Integer): TCoolSet;
                function GetBrowserCoolSet(Index: Integer): TCoolSet;
@@ -807,7 +809,8 @@ type
         property ExtList: String read FExtList write FExtList;
         //! Skin\83t\83@\83C\83\8b\8aÇ\97\9d
         property SkinFiles: TSkinFiles read FSkinFiles;
-
+        //! \83C\83\93\83f\83b\83N\83X\93Ç\82Ý\8d\9e\82Ý\8e\9edat\83t\83@\83C\83\8b\83`\83F\83b\83N
+        property CheckDatFile: Boolean read FCheckDatFile write FCheckDatFile;
 end;
 
 
@@ -1293,6 +1296,9 @@ begin
 
         FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);
         FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');
+
+        FCheckDatFile := ini.ReadBool('ThreadList', 'CheckDatFile', True);
+
                ini.UpdateFile;
        finally
                ini.Free;
@@ -1675,6 +1681,7 @@ begin
         ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);
         ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);
         ini.WriteString('Function', 'ExtList', FExtList);
+        ini.WriteBool('ThreadList', 'CheckDatFile', FCheckDatFile);
                ini.UpdateFile;
        finally
                ini.Free;
index cf3b692..98df00f 100644 (file)
Binary files a/gikoNavi.res and b/gikoNavi.res differ