OSDN Git Service

Folder.idxファイル読み込み時にdatファイルをチェックしないオプションを追加
[gikonavigoeson/gikonavi.git] / Setting.pas
index d47fc03..701a693 100644 (file)
@@ -5,7 +5,7 @@ interface
 
 uses
        SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}
-       ComCtrls, GestureModel, IniFiles;
+       ComCtrls, GestureModel, IniFiles, SkinFiles;
 
 const
        MAIN_COOLBAND_COUNT = 4;                //\83\81\83C\83\93CoolBand\82Ì\90\94
@@ -232,8 +232,6 @@ type
                FListViewNo: Boolean;
                //CSS\95\\8e¦
                FUseCSS: Boolean;
-               //CSS\83t\83@\83C\83\8b\96¼
-               FCSSFileName: string;
                // \83X\83L\83\93\95\\8e¦(\88ê\8e\9e\93I\82È\82à\82Ì\82Å ini \82É\95Û\91\82Í\82³\82ê\82È\82¢)
                FUseSkin: Boolean;
                //\82©\82¿\82ã\81`\82µ\82á\97p\82ÌSkin\82ð\97\98\97p\82·\82é\82©
@@ -380,7 +378,8 @@ type
 
                 //Tab\8e©\93®\95Û\91
                 FTabAutoLoadSave : Boolean;
-
+                //\8dÅ\8cã\82É\8aJ\82¢\82Ä\82¢\82½\83X\83\8c\83b\83h\82ÌURL
+                FLastCloseTabURL: String;
                 //\82É\82¿\82á\82ñ\8cê\88Ä\93à\83T\83|\81[\83g\8b@\94\
                 F2chSupport : Boolean;
 
@@ -449,6 +448,10 @@ type
         FSentIniFileSize: Integer;
         //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
         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;
@@ -474,6 +477,7 @@ type
 
                procedure SetUseCSS( value: Boolean );
                procedure SetCSSFileName( fileName: string );
+        function GetCSSFileName: string;
         //! \83v\83\8d\83L\83V\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
         procedure ReadProxySettings(memIni: TMemIniFile);
         //! \8ae\8eí\83E\83B\83\93\83h\83E\90Ý\92è\93Ç\82Ý\8d\9e\82Ý
@@ -510,12 +514,6 @@ type
                function GetSentFileName: string;
                function GetConfigDir: string;
                function GetSkinDir: string;
-               function GetSkinHeaderFileName: string;
-               function GetSkinFooterFileName: string;
-               function GetSkinResFileName: string;
-               function GetSkinNewResFileName: string;
-               function GetSkinBookmarkFileName: string;
-               function GetSkinNewmarkFileName: string;
                function GetStyleSheetDir: string;
                function GetOutBoxFileName: string;
                function GetNGWordsDir: string;
@@ -644,7 +642,7 @@ type
 
                property ListViewNo: Boolean read FListViewNo write FListViewNo;
                property UseCSS: Boolean read FUseCSS write SetUseCSS;
-               property CSSFileName: string read FCSSFileName write SetCSSFileName;
+               property CSSFileName: string read GetCSSFileName write SetCSSFileName;
                property UseKatjushaType : Boolean read FUseKatjushaType write FUseKatjushaType;
                property UseSkin: Boolean read FUseSkin;
 
@@ -758,6 +756,8 @@ type
                property SelectInterval : Integer       read FSelectInterval    write FSelectInterval;
                //Tab\95Û\91
                property TabAutoLoadSave: Boolean           read FTabAutoLoadSave      write FTabAutoLoadSave;
+        //\83^\83u\82Ì\95\9c\8c³\82Æ\82©\97p
+        property LastCloseTabURL: String read FLastCloseTabURL write FLastCloseTabURL;
                                //property Gengo: TStringList read F2chLanguage write F2chLanguage;
                                property GengoSupport : Boolean read F2chSupport write F2chSupport;
                property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex;
@@ -807,7 +807,10 @@ type
         property SentIniFileSize: Integer read FSentIniFileSize write FSentIniFileSize;
         //! \83\8a\83\93\83NURL\8eæ\93¾\82Ì\91Î\8fÛ\8ag\92£\8eq
         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;
 
 
@@ -827,12 +830,6 @@ const
        CONFIG_DIR_NAME                                                         = 'config';
        CSS_DIR_NAME                                                                    = 'css';
        SKIN_DIR_NAME                                                                   = 'skin';
-       SKIN_HEADER_FILE_NAME                                   = 'Header.html';
-       SKIN_FOOTER_FILE_NAME                                   = 'Footer.html';
-       SKIN_NEWRES_FILE_NAME                                   = 'NewRes.html';
-       SKIN_RES_FILE_NAME                                              = 'Res.html';
-       SKIN_BOOKMARK_FILE_NAME                         = 'Bookmark.html';
-       SKIN_NEWMARK_FILE_NAME                          = 'Newmark.html';
        NGWORDs_DIR_NAME : String               = 'NGwords';
        BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';
        SAMBATIME_FILE_NAME : String    = 'Samba.ini';
@@ -966,6 +963,7 @@ begin
        FCategoryColumnOrder := TGikoCategoryColumnList.Create;
        FBoardColumnOrder := TGikoBoardColumnList.Create;
        FGestures := TGestureModel.Create;
+    FSkinFiles := TSkinFiles.Create;
        FNameList.Duplicates := dupIgnore;
        FMailList.Duplicates := dupIgnore;
        FBoardURLs.Duplicates := dupIgnore;
@@ -991,13 +989,13 @@ end;
 //\8f\89\8aú\89»\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
 function TSetting.GetFileName(): string;
 begin
-       Result := ExtractFilePath(Application.ExeName) + INI_FILE_NAME;
+       Result := GetAppDir + INI_FILE_NAME;
 end;
 
 //\94Â\8dX\90V\97pURL\90Ý\92è\83t\83@\83C\83\8b\96¼\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
 function TSetting.GetBoardURLFileName(): string;
 begin
-       Result := ExtractFilePath(Application.ExeName) + BOARD_URL_INI_FILE_NAME;
+       Result := GetAppDir + BOARD_URL_INI_FILE_NAME;
 end;
 
 //\90Ý\92è\83t\83@\83C\83\8b\93Ç\8d\9e
@@ -1125,7 +1123,7 @@ begin
                //ResAnchorjamp
                ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);
                //\83\8d\83O\83t\83H\83\8b\83_
-               LogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');
+               LogFolder := ini.ReadString('Folder', 'LogFolder', GetAppDir + 'Log');
                NewLogFolder := '';
 
                //\94ÂURL
@@ -1147,8 +1145,11 @@ begin
                FOpenMailer := ini.ReadBool('Mailto', 'Open', True);
 
                //\83|\83b\83v\83A\83b\83v\88Ê\92u
-               FPopupPosition := TGikoPopupPosition(ini.ReadInteger('Browser', 'PopupPosition', Ord(gppLeftBottom)));
-
+               FPopupPosition := TGikoPopupPosition(ini.ReadInteger('Browser', 'PopupPosition', Ord(gppRightTop)));
+        // \83o\83^56\88È\91O\82©\82ç\82Ì\83A\83b\83v\83f\81[\83g\91Î\8dô
+        if (FPopupPosition = gppCenter) then begin
+            FPopupPosition := gppTop;
+        end;
                //\83A\83h\83\8c\83X\83o\81[
                FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);
                FAddressBarTabStop := ini.ReadBool('AddressBar', 'TabStop', True);
@@ -1195,7 +1196,7 @@ begin
                                        SoundFileName[i] := '';
                        end;
                end else begin
-                       s := ExtractFileDir(Application.ExeName) + '\sound\';
+                       s := GetAppDir + '\sound\';
                        SoundFileName[0] := s + '\8eæ\93¾\90¬\8c÷.wav';
                        SoundFileName[1] := s + '\8eæ\93¾\90¬\8c÷(\8d·\95ª).wav';
                        SoundFileName[2] := s + '\96¢\8dX\90V.wav';
@@ -1239,7 +1240,7 @@ begin
 
                //Tab\8e©\93®\95Û\91\81A\93Ç\82Ý\8d\9e\82Ý
                FTabAutoLoadSave    := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
-
+        FLastCloseTabURL    := ini.ReadString('Thread', 'LastCloseTabURL', '');
                FKuroutSettingTabIndex := ini.ReadInteger('OptionDialog', 'KuroutTabIndex' , 0);
 
                // \83}\83E\83X\83W\83F\83X\83`\83\83\81[
@@ -1295,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;
@@ -1476,7 +1480,7 @@ begin
                //\82©\82µ\82ã\81`\82µ\82á\82Ì\83X\83L\83\93\82ð\8eg\82¤\82©
                ini.WriteBool('CSS', 'UseKatjushaType', FUseKatjushaType);
                //CSS\83t\83@\83C\83\8b\96¼
-               ini.WriteString('CSS', 'FileName', FCSSFileName);
+               ini.WriteString('CSS', 'FileName', FSkinFiles.FileName);
                //Mail\97\93\95\\8e¦
                ini.WriteBool('Thread', 'ShowMail', FShowMail);
                // \83\8c\83X\95\\8e¦\94Í\88Í
@@ -1638,6 +1642,7 @@ begin
 
                 //\83^\83u\8e©\93®\95Û\91
                ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
+        ini.WriteString('Thread', 'LastCloseTabURL', FLastCloseTabURL); 
                 //\8fÚ\8d×\90Ý\92è
                ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex);
 
@@ -1676,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;
@@ -1720,7 +1726,7 @@ var
 begin
        ini := TMemIniFile.Create(GetFileName());
        try
-               if ExtractFilePath(Application.ExeName) + 'Log' = NewLogFolder then
+               if GetAppDir + 'Log' = NewLogFolder then
                        ini.DeleteKey('Folder', 'LogFolder')
                else
                        ini.WriteString('Folder', 'LogFolder', NewLogFolder);
@@ -1962,7 +1968,7 @@ end;
  *************************************************************************)
 function TSetting.GetBoardFileName: string;
 begin
-       Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_FILE_NAME;
+       Result := GetConfigDir + BOARD_FILE_NAME;
 end;
 
 (*************************************************************************
@@ -1970,15 +1976,15 @@ end;
  *************************************************************************)
 function TSetting.GetCustomBoardFileName: string;
 begin
-       Result := GetAppDir + CONFIG_DIR_NAME + '\' + CUSTOMBOARD_FILE_NAME;
+       Result := GetConfigDir + CUSTOMBOARD_FILE_NAME;
 end;
 
 (*************************************************************************
- *\83{\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾
+ *\83{\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
  *************************************************************************)
 function TSetting.GetBoardDir: string;
 begin
-       Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_DIR_NAME + '\';
+       Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_DIR_NAME);
 end;
 
 (*************************************************************************
@@ -1991,7 +1997,7 @@ end;
 
 
 (*************************************************************************
- *\8eÀ\8ds\83t\83@\83C\83\8b\83t\83H\83\8b\83_\8eæ\93¾
+ *\8eÀ\8ds\83t\83@\83C\83\8b\83t\83H\83\8b\83_\8eæ\93¾(\8dÅ\8cã\82É\\82ª\82 \82é)
  *************************************************************************)
 function TSetting.GetAppDir: string;
 begin
@@ -2023,58 +2029,36 @@ begin
 end;
 
 (*************************************************************************
- *Config\83t\83H\83\8b\83_\8eæ\93¾
+ *Config\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
  *************************************************************************)
 function TSetting.GetConfigDir: string;
 begin
        Result := IncludeTrailingPathDelimiter(GetAppDir + CONFIG_DIR_NAME);
 end;
-
+(*************************************************************************
+ *CSS\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
 function TSetting.GetStyleSheetDir: string;
 begin
        Result := IncludeTrailingPathDelimiter(GetConfigDir + CSS_DIR_NAME);
 end;
-
+(*************************************************************************
+ *skin\83t\83H\83\8b\83_\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
 function TSetting.GetSkinDir: string;
 begin
        Result := IncludeTrailingPathDelimiter(GetConfigDir + SKIN_DIR_NAME);
 end;
-
-function TSetting.GetSkinHeaderFileName: string;
-begin
-       Result := CSSFileName + SKIN_HEADER_FILE_NAME;
-end;
-
-function TSetting.GetSkinFooterFileName: string;
-begin
-       Result := CSSFileName + SKIN_FOOTER_FILE_NAME;
-end;
-
-function TSetting.GetSkinNewResFileName: string;
-begin
-       Result := CSSFileName + SKIN_NEWRES_FILE_NAME;
-end;
-
-function TSetting.GetSkinResFileName: string;
-begin
-       Result := CSSFileName + SKIN_RES_FILE_NAME;
-end;
-
-function TSetting.GetSkinBookmarkFileName: string;
-begin
-       Result := CSSFileName + SKIN_BOOKMARK_FILE_NAME;
-end;
-
-function TSetting.GetSkinNewmarkFileName: string;
-begin
-       Result := CSSFileName + SKIN_NEWMARK_FILE_NAME;
-end;
-
+(*************************************************************************
+ *NG\83\8f\81[\83h\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
 function TSetting.GetNGWordsDir: string;
 begin
        Result := IncludeTrailingPathDelimiter(GetConfigDir + NGWORDs_DIR_NAME);
 end;
-
+(*************************************************************************
+ *Board\83v\83\89\83O\83C\83\93\83f\83B\83\8c\83N\83g\83\8a\8eæ\93¾(\\82Å\8fI\82í\82é)
+ *************************************************************************)
 function TSetting.GetBoardPlugInDir: string;
 begin
        Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_PLUGIN_DIR_NAME);
@@ -2088,24 +2072,25 @@ begin
        // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
        FUseSkin :=
                UseCSS and
-               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and
-               FileExists( GetSkinHeaderFileName );
+               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
+               FileExists( FSkinFiles.GetSkinHeaderFileName );
 
 end;
 
 procedure TSetting.SetCSSFileName( fileName: string );
 begin
-
-       FCSSFileName := fileName;
+    FSkinFiles.FileName := fileName;
        // Windows\93I\82É\83t\83@\83C\83\8b\83p\83X\82Ì\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82³\82ê\82é\82Ì\82Å\81A
        // \83R\83R\82Å\82Ì\94»\92è\82Å\82à\91å\95\8e\9a\8f¬\95\8e\9a\82Ì\88á\82¢\82Í\96³\8e\8b\82·\82é\81B
        FUseSkin :=
                UseCSS and
-               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and
-               FileExists( GetSkinHeaderFileName );
+               (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
+               FileExists( FSkinFiles.GetSkinHeaderFileName );
 
 end;
-
+(*************************************************************************
+ *samba\90Ý\92è\83t\83@\83C\83\8b\96¼\8eæ\93¾
+ *************************************************************************)
 function TSetting.GetSambaFileName: string;
 begin
        Result := GetAppDir + SAMBATIME_FILE_NAME;
@@ -2386,5 +2371,11 @@ begin
                end;
     end;
 end;
+
+function TSetting.GetCSSFileName: string;
+begin
+    Result := FSkinFiles.FileName;
+end;
+
 end.