Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Setting.pas

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

revision 1.120.2.2 by h677, Wed May 30 15:46:59 2007 UTC revision 1.144 by h677, Sun Feb 27 01:25:25 2011 UTC
# Line 5  interface Line 5  interface
5    
6  uses  uses
7          SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}          SysUtils, Classes, Graphics, Forms, {Math, IniFiles, UCryptAuto, UBase64,}
8          ComCtrls, GestureModel, IniFiles;          ComCtrls, GestureModel, IniFiles, SkinFiles;
9    
10  const  const
11          MAIN_COOLBAND_COUNT = 4;                //メインCoolBandの数          MAIN_COOLBAND_COUNT = 4;                //メインCoolBandの数
# Line 20  type Line 20  type
20          TGikoListOrientation = (gloHorizontal, gloVertical);    // リスト垂直・水平          TGikoListOrientation = (gloHorizontal, gloVertical);    // リスト垂直・水平
21          TGikoListState = (glsMax, glsNormal, glsMin);                                   // リストサイズ状態          TGikoListState = (glsMax, glsNormal, glsMin);                                   // リストサイズ状態
22                                                                                                                                                                                                                                  // ポップアップ表示位置                                                                                                                                                                                                                                  // ポップアップ表示位置
23          TGikoPopupPosition = (gppRightTop, gppTop, gppLeftTop,          TGikoPopupPosition = (gppLeftTop = 0, gppTop, gppRightTop,
24                                                                                                  gppRight, gppCenter, gppLeft,                                                                                                  gppLeft, gppCenter, gppRight,
25                                                                                                  gppRightBottom, gppBottom, gppLeftBottom);                                                                                                  gppLeftBottom, gppBottom, gppRightBottom);
26                                                                                                                                                                                                                                  //プレビューサイズ                                                                                                                                                                                                                                  //プレビューサイズ
27          TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);          TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);
28          TGikoBrowserAutoMaximize        = (gbmNone, gbmClick, gbmDoubleClick);          TGikoBrowserAutoMaximize        = (gbmNone, gbmClick, gbmDoubleClick);
# Line 232  type Line 232  type
232                  FListViewNo: Boolean;                  FListViewNo: Boolean;
233                  //CSS表示                  //CSS表示
234                  FUseCSS: Boolean;                  FUseCSS: Boolean;
                 //CSSファイル名  
                 FCSSFileName: string;  
235                  // スキン表示(一時的なもので ini に保存はされない)                  // スキン表示(一時的なもので ini に保存はされない)
236                  FUseSkin: Boolean;                  FUseSkin: Boolean;
237                  //かちゅ〜しゃ用のSkinを利用するか                  //かちゅ〜しゃ用のSkinを利用するか
# Line 380  type Line 378  type
378    
379                  //Tab自動保存                  //Tab自動保存
380                  FTabAutoLoadSave : Boolean;                  FTabAutoLoadSave : Boolean;
381                    //最後に開いていたスレッドのURL
382                    FLastCloseTabURL: String;
383                  //にちゃん語案内サポート機能                  //にちゃん語案内サポート機能
384                  F2chSupport : Boolean;                  F2chSupport : Boolean;
385    
# Line 415  type Line 414  type
414                                  //Be2ch                                  //Be2ch
415                  //認証用ユーザID・パスワード                  //認証用ユーザID・パスワード
416                  FBeUserID: String;                  FBeUserID: String;
417                  FBeCode: String;                  FBePassword: String;
418                  FBeAutoLogin: Boolean;                  FBeAutoLogin: Boolean;
419                  FBeLogin: Boolean;                  FBeLogin: Boolean;
420                  //履歴の最大保存件数                  //履歴の最大保存件数
# Line 441  type Line 440  type
440          FLoopBrowserTabs : Boolean;          FLoopBrowserTabs : Boolean;
441          //! 100レス表示の先頭表示レス数          //! 100レス表示の先頭表示レス数
442          FHeadResCount : Integer;          FHeadResCount : Integer;
443            //! 100レス表示数(拡張用)
444            FResRangeExCount: Integer;
445          //! 関連キーワード追加フラグ          //! 関連キーワード追加フラグ
446          FAddKeywordLink: Boolean;          FAddKeywordLink: Boolean;
447          //! dat置換を有効にする          //! dat置換を有効にする
# Line 449  type Line 450  type
450          FSentIniFileSize: Integer;          FSentIniFileSize: Integer;
451          //! リンクURL取得の対象拡張子          //! リンクURL取得の対象拡張子
452          FExtList: String;          FExtList: String;
453            //! Skin関連
454            FSkinFiles: TSkinFiles;
455            //! indexファイルを読み時にdatを検索する
456            FCheckDatFile: Boolean;
457            //! 同IDレスアンカー表示
458            FLimitResCountMessage: Boolean;
459            //! レスポップアップ表示位置deltaX
460            FRespopupDeltaX: Integer;
461            //! レスポップアップ表示位置deltaY
462            FRespopupDeltaY: Integer;
463            //! レスポップアップタイマー
464            FRespopupWait: Integer;
465            //! メール欄レスポップアップ
466            FRespopupMailTo: Boolean;
467            //! 誤爆チェック
468            FUseGobakuCheck: Boolean;
469    
470            //! 冒険の書用Cookie
471            FBoukenCookieList: TStringList;
472    
473                  function GetMainCoolSet(Index: Integer): TCoolSet;                  function GetMainCoolSet(Index: Integer): TCoolSet;
474                  function GetBoardCoolSet(Index: Integer): TCoolSet;                  function GetBoardCoolSet(Index: Integer): TCoolSet;
475                  function GetBrowserCoolSet(Index: Integer): TCoolSet;                  function GetBrowserCoolSet(Index: Integer): TCoolSet;
# Line 474  type Line 495  type
495    
496                  procedure SetUseCSS( value: Boolean );                  procedure SetUseCSS( value: Boolean );
497                  procedure SetCSSFileName( fileName: string );                  procedure SetCSSFileName( fileName: string );
498            function GetCSSFileName: string;
499          //! プロキシ設定読み込み          //! プロキシ設定読み込み
500          procedure ReadProxySettings(memIni: TMemIniFile);          procedure ReadProxySettings(memIni: TMemIniFile);
501          //! 各種ウィンドウ設定読み込み          //! 各種ウィンドウ設定読み込み
# Line 498  type Line 520  type
520                  procedure WriteNameMailSettingFile;                  procedure WriteNameMailSettingFile;
521                  procedure WriteFolderSettingFile();                  procedure WriteFolderSettingFile();
522                  procedure WriteBoardURLSettingFile;                  procedure WriteBoardURLSettingFile;
523                    procedure WriteBoukenSettingFile;
524                  function GetSoundCount: Integer;                  function GetSoundCount: Integer;
525                  function FindSoundFileName(Name: string): string;                  function FindSoundFileName(Name: string): string;
526    
# Line 510  type Line 533  type
533                  function GetSentFileName: string;                  function GetSentFileName: string;
534                  function GetConfigDir: string;                  function GetConfigDir: string;
535                  function GetSkinDir: string;                  function GetSkinDir: string;
                 function GetSkinHeaderFileName: string;  
                 function GetSkinFooterFileName: string;  
                 function GetSkinResFileName: string;  
                 function GetSkinNewResFileName: string;  
                 function GetSkinBookmarkFileName: string;  
                 function GetSkinNewmarkFileName: string;  
536                  function GetStyleSheetDir: string;                  function GetStyleSheetDir: string;
537                  function GetOutBoxFileName: string;                  function GetOutBoxFileName: string;
538                  function GetNGWordsDir: string;                  function GetNGWordsDir: string;
# Line 530  type Line 547  type
547                  procedure WriteLogFolder(AVal : String);                  procedure WriteLogFolder(AVal : String);
548                  function GetInputAssistFileName : String;                  function GetInputAssistFileName : String;
549          function GetReplaceFileName: String;          function GetReplaceFileName: String;
550            function GetExtprevieFileName: String;
551            function GetBoukenCookie(AHostName: String): String;
552            procedure SetBoukenCookie(ACookieValue, AHostName: String);
553            procedure GetBouken(AHostName: String; var Domain:String; var Cookie:String);
554          {          {
555          \brief  リンク履歴の保持サイズのsetter          \brief  リンク履歴の保持サイズのsetter
556          \param  AVal    設定するサイズ( >0)          \param  AVal    設定するサイズ( >0)
557          }          }
558          procedure SetMoveHistorySize(AVal : Integer);          procedure SetMoveHistorySize(AVal : Integer);
559                  //受信バッファサイズ                  //受信バッファサイズ
# Line 644  type Line 665  type
665    
666                  property ListViewNo: Boolean read FListViewNo write FListViewNo;                  property ListViewNo: Boolean read FListViewNo write FListViewNo;
667                  property UseCSS: Boolean read FUseCSS write SetUseCSS;                  property UseCSS: Boolean read FUseCSS write SetUseCSS;
668                  property CSSFileName: string read FCSSFileName write SetCSSFileName;                  property CSSFileName: string read GetCSSFileName write SetCSSFileName;
669                  property UseKatjushaType : Boolean read FUseKatjushaType write FUseKatjushaType;                  property UseKatjushaType : Boolean read FUseKatjushaType write FUseKatjushaType;
670                  property UseSkin: Boolean read FUseSkin;                  property UseSkin: Boolean read FUseSkin;
671    
# Line 758  type Line 779  type
779                  property SelectInterval : Integer       read FSelectInterval    write FSelectInterval;                  property SelectInterval : Integer       read FSelectInterval    write FSelectInterval;
780                  //Tab保存                  //Tab保存
781                  property TabAutoLoadSave: Boolean           read FTabAutoLoadSave      write FTabAutoLoadSave;                  property TabAutoLoadSave: Boolean           read FTabAutoLoadSave      write FTabAutoLoadSave;
782            //タブの復元とか用
783            property LastCloseTabURL: String read FLastCloseTabURL write FLastCloseTabURL;
784                                  //property Gengo: TStringList read F2chLanguage write F2chLanguage;                                  //property Gengo: TStringList read F2chLanguage write F2chLanguage;
785                                  property GengoSupport : Boolean read F2chSupport write F2chSupport;                                  property GengoSupport : Boolean read F2chSupport write F2chSupport;
786                  property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex;                  property KuroutSettingTabIndex: Integer read FKuroutSettingTabIndex write FKuroutSettingTabIndex;
# Line 777  type Line 800  type
800                  property UseUndecided: Boolean read FUseUndecided write FUseUndecided;                  property UseUndecided: Boolean read FUseUndecided write FUseUndecided;
801    
802                  property BeUserID: string read FBeUserID write FBeUserID;                  property BeUserID: string read FBeUserID write FBeUserID;
803                  property BeCode: string read FBeCode write FBeCode;                  property BePassword: string read FBePassword write FBePassword;
804                  property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;                  property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;
805                  property BeLogin: Boolean read FBeLogin write FBeLogin;                  property BeLogin: Boolean read FBeLogin write FBeLogin;
806                  property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;                  property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
# Line 799  type Line 822  type
822          property LoopBrowserTabs : Boolean read FLoopBrowserTabs write FLoopBrowserTabs;          property LoopBrowserTabs : Boolean read FLoopBrowserTabs write FLoopBrowserTabs;
823          //! 100レス表示の先頭表示レス数          //! 100レス表示の先頭表示レス数
824          property HeadResCount : Integer read FHeadResCount write FHeadResCount;          property HeadResCount : Integer read FHeadResCount write FHeadResCount;
825            //! 100レス表示数(拡張用)
826            property ResRangeExCount: Integer read FResRangeExCount write FResRangeExCount;
827          //! 関連キーワード追加フラグ          //! 関連キーワード追加フラグ
828          property AddKeywordLink: Boolean read FAddKeywordLink write FAddKeywordLink;          property AddKeywordLink: Boolean read FAddKeywordLink write FAddKeywordLink;
829          //! datの置換を有効にするか          //! datの置換を有効にするか
# Line 807  type Line 832  type
832          property SentIniFileSize: Integer read FSentIniFileSize write FSentIniFileSize;          property SentIniFileSize: Integer read FSentIniFileSize write FSentIniFileSize;
833          //! リンクURL取得の対象拡張子          //! リンクURL取得の対象拡張子
834          property ExtList: String read FExtList write FExtList;          property ExtList: String read FExtList write FExtList;
835            //! Skinファイル管理
836            property SkinFiles: TSkinFiles read FSkinFiles;
837            //! インデックス読み込み時datファイルチェック
838            property CheckDatFile: Boolean read FCheckDatFile write FCheckDatFile;
839            property LimitResCountMessage: Boolean read FLimitResCountMessage write FLimitResCountMessage;
840            //! レスポップアップ表示位置deltaX
841            property  RespopupDeltaX: Integer read FRespopupDeltaX write FRespopupDeltaX;
842            //! レスポップアップ表示位置deltaY
843            property RespopupDeltaY: Integer read FRespopupDeltaY write FRespopupDeltaY;
844            //! レスポップアップタイマー
845            property RespopupWait: Integer read FRespopupWait write FRespopupWait;
846            property RespopupMailTo: Boolean read FRespopupMailTo write FRespopupMailTo;
847            //! 誤爆チェック
848            property UseGobakuCheck: Boolean read FUseGobakuCheck write FUseGobakuCheck;
849            //! 冒険の書
850            property BoukenCookieList: TStringList read FBoukenCookieList write FBoukenCookieList;
851  end;  end;
852    
853    
# Line 827  const Line 867  const
867          CONFIG_DIR_NAME                                                         = 'config';          CONFIG_DIR_NAME                                                         = 'config';
868          CSS_DIR_NAME                                                                    = 'css';          CSS_DIR_NAME                                                                    = 'css';
869          SKIN_DIR_NAME                                                                   = 'skin';          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';  
870          NGWORDs_DIR_NAME : String               = 'NGwords';          NGWORDs_DIR_NAME : String               = 'NGwords';
871          BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';          BOARD_PLUGIN_DIR_NAME                                   = 'BoardPlugin';
872          SAMBATIME_FILE_NAME : String    = 'Samba.ini';          SAMBATIME_FILE_NAME : String    = 'Samba.ini';
# Line 843  const Line 877  const
877          SPAMFILTER_FILE_NAME                                    = 'SpamFilter.ini';          SPAMFILTER_FILE_NAME                                    = 'SpamFilter.ini';
878                  LANGUAGE_FILE_NAME    = 'language.ini';                  LANGUAGE_FILE_NAME    = 'language.ini';
879          INPUTASSIST_FILE_NAME   = 'InputAssist.ini';          INPUTASSIST_FILE_NAME   = 'InputAssist.ini';
880      FIXED_COOKIE =           'hana=mogera';      FIXED_COOKIE =           '';
881      REPLACE_FILE_NAME = 'replace.ini';      REPLACE_FILE_NAME = 'replace.ini';
882        EXT_PREVIEW_FILE_NAME = 'extpreview.ini';
883    
884  implementation  implementation
885    
# Line 966  begin Line 1001  begin
1001          FCategoryColumnOrder := TGikoCategoryColumnList.Create;          FCategoryColumnOrder := TGikoCategoryColumnList.Create;
1002          FBoardColumnOrder := TGikoBoardColumnList.Create;          FBoardColumnOrder := TGikoBoardColumnList.Create;
1003          FGestures := TGestureModel.Create;          FGestures := TGestureModel.Create;
1004        FSkinFiles := TSkinFiles.Create;
1005          FNameList.Duplicates := dupIgnore;          FNameList.Duplicates := dupIgnore;
1006          FMailList.Duplicates := dupIgnore;          FMailList.Duplicates := dupIgnore;
1007          FBoardURLs.Duplicates := dupIgnore;          FBoardURLs.Duplicates := dupIgnore;
1008          FSelectTextList.Duplicates := dupIgnore;          FSelectTextList.Duplicates := dupIgnore;
1009        FBoukenCookieList := TStringList.Create;
1010          ReadSettingFile();          ReadSettingFile();
1011          ReadBoardURLsFile();          ReadBoardURLsFile();
1012  end;  end;
# Line 977  end; Line 1014  end;
1014  //デストラクタ  //デストラクタ
1015  destructor TSetting.Destroy();  destructor TSetting.Destroy();
1016  begin  begin
1017        FBoukenCookieList.Free;
1018            FBoardColumnOrder.Free;
1019            FCategoryColumnOrder.Free;
1020            FBBSColumnOrder.Free;
1021            FSelectTextList.Free;
1022            FBoardURLs.Free;
1023            FMailList.Free;
1024            FNameList.Free;
1025            FGestures.Free;
1026        FSkinFiles.Free;
1027          inherited;          inherited;
         FBoardColumnOrder.Free;  
         FCategoryColumnOrder.Free;  
         FBBSColumnOrder.Free;  
         FSelectTextList.Free;  
         FBoardURLs.Free;  
         FMailList.Free;  
         FNameList.Free;  
         FGestures.Free;  
1028  end;  end;
1029    
1030  //初期化ファイル名取得(パス+ファイル名)  //初期化ファイル名取得(パス+ファイル名)
1031  function TSetting.GetFileName(): string;  function TSetting.GetFileName(): string;
1032  begin  begin
1033          Result := ExtractFilePath(Application.ExeName) + INI_FILE_NAME;          Result := GetAppDir + INI_FILE_NAME;
1034  end;  end;
1035    
1036  //板更新用URL設定ファイル名(パス+ファイル名)  //板更新用URL設定ファイル名(パス+ファイル名)
1037  function TSetting.GetBoardURLFileName(): string;  function TSetting.GetBoardURLFileName(): string;
1038  begin  begin
1039          Result := ExtractFilePath(Application.ExeName) + BOARD_URL_INI_FILE_NAME;          Result := GetAppDir + BOARD_URL_INI_FILE_NAME;
1040  end;  end;
1041    
1042  //設定ファイル読込  //設定ファイル読込
# Line 1009  var Line 1048  var
1048          s: string;                                                        s: string;                                              
1049          CoolSet: TCoolSet;          CoolSet: TCoolSet;
1050      msg: String;      msg: String;
1051        hostList: TStringList;
1052  begin  begin
1053          Exists := FileExists(GetFileName);          Exists := FileExists(GetFileName);
1054          ini := TMemIniFile.Create(GetFileName);          ini := TMemIniFile.Create(GetFileName);
# Line 1108  begin Line 1148  begin
1148                          FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) );                          FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) );
1149                  FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False );                  FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False );
1150          FHeadResCount := ini.ReadInteger('Thread', 'HeadResCount', 1);          FHeadResCount := ini.ReadInteger('Thread', 'HeadResCount', 1);
1151            FResRangeExCount:= ini.ReadInteger('Thread','ResRangeExCount', 100);
1152                  // スレッド一覧表示範囲                  // スレッド一覧表示範囲
1153                  FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) );                  FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) );
1154                  //非アクティブ時レスポップアップ表示                  //非アクティブ時レスポップアップ表示
# Line 1125  begin Line 1166  begin
1166                  //ResAnchorjamp                  //ResAnchorjamp
1167                  ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);                  ResAnchorJamp := ini.ReadBool('Function', 'ResAnchoJamp', True);
1168                  //ログフォルダ                  //ログフォルダ
1169                  LogFolder := ini.ReadString('Folder', 'LogFolder', ExtractFilePath(Application.ExeName) + 'Log');                  LogFolder := ini.ReadString('Folder', 'LogFolder', GetAppDir + 'Log');
1170                  NewLogFolder := '';                  NewLogFolder := '';
1171    
1172                  //板URL                  //板URL
# Line 1152  begin Line 1193  begin
1193          if (FPopupPosition = gppCenter) then begin          if (FPopupPosition = gppCenter) then begin
1194              FPopupPosition := gppTop;              FPopupPosition := gppTop;
1195          end;          end;
1196            FRespopupDeltaX := ini.ReadInteger('Browser', 'RespopupDelteX', 5);
1197            FRespopupDeltaY := ini.ReadInteger('Browser', 'RespopupDelteY', 5);
1198            FRespopupWait   := ini.ReadInteger('Browser', 'RespopupWait', 1000);
1199            FRespopupMailTo := ini.ReadBool('Browser', 'RespopupMailTo', true);
1200    
1201                  //アドレスバー                  //アドレスバー
1202                  FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);                  FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);
1203                  FAddressBarTabStop := ini.ReadBool('AddressBar', 'TabStop', True);                  FAddressBarTabStop := ini.ReadBool('AddressBar', 'TabStop', True);
# Line 1192  begin Line 1238  begin
1238    
1239                  //サウンド                  //サウンド
1240                  if Exists then begin                  if Exists then begin
1241                SetCurrentDir(ExtractFilePath(Application.ExeName));
1242                          for i := 0 to GetSoundCount - 1 do begin                          for i := 0 to GetSoundCount - 1 do begin
1243                                  SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');                                  SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');
1244                                  if not FileExists(SoundFileName[i]) then                  // 相対参照対策
1245                                          SoundFileName[i] := '';                  // ファイルの存在チェック
1246                    if not FileExists(ExpandFileName(SoundFileName[i])) then begin
1247                        SoundFileName[i] := '';
1248                    end;
1249                          end;                          end;
1250                  end else begin                  end else begin
1251                          s := ExtractFileDir(Application.ExeName) + '\sound\';                          s := 'Sound\';
1252                          SoundFileName[0] := s + '取得成功.wav';                          SoundFileName[0] := s + '取得成功.wav';
1253                          SoundFileName[1] := s + '取得成功(差分).wav';                          SoundFileName[1] := s + '取得成功(差分).wav';
1254                          SoundFileName[2] := s + '未更新.wav';                          SoundFileName[2] := s + '未更新.wav';
# Line 1239  begin Line 1289  begin
1289                  // エディタ                  // エディタ
1290                  FSpaceToNBSP    := ini.ReadBool( 'Editor', 'SpaceToNBSP', False );                  FSpaceToNBSP    := ini.ReadBool( 'Editor', 'SpaceToNBSP', False );
1291                  FAmpToCharRef   := ini.ReadBool( 'Editor', 'AmpToCharRef', False );                  FAmpToCharRef   := ini.ReadBool( 'Editor', 'AmpToCharRef', False );
1292            FUseGobakuCheck := ini.ReadBool( 'Editor', 'UseGobakuCheck', True );
1293    
1294                  //Tab自動保存、読み込み                  //Tab自動保存、読み込み
1295                  FTabAutoLoadSave    := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);                  FTabAutoLoadSave    := ini.ReadBool('TabAuto', 'TabAutoLoadSave', False);
1296            FLastCloseTabURL    := ini.ReadString('Thread', 'LastCloseTabURL', '');
1297                  FKuroutSettingTabIndex := ini.ReadInteger('OptionDialog', 'KuroutTabIndex' , 0);                  FKuroutSettingTabIndex := ini.ReadInteger('OptionDialog', 'KuroutTabIndex' , 0);
1298    
1299                  // マウスジェスチャー                  // マウスジェスチャー
# Line 1265  begin Line 1316  begin
1316          //Be2ch          //Be2ch
1317                  //認証用ユーザID・認証コード                  //認証用ユーザID・認証コード
1318                  FBeUserID := ini.ReadString('Be', 'UserID', '');                  FBeUserID := ini.ReadString('Be', 'UserID', '');
1319                  FBeCode := Decrypt(ini.ReadString('Be', 'Code', ''));                  FBePassword := Decrypt(ini.ReadString('Be', 'Password', ''));
1320                  FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);                  FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);
1321                  //履歴の最大保存件数                  //履歴の最大保存件数
1322                  FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);                  FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
# Line 1298  begin Line 1349  begin
1349    
1350          FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);          FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);
1351          FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');          FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');
1352    
1353            FCheckDatFile := ini.ReadBool('ThreadList', 'CheckDatFile', True);
1354            FLimitResCountMessage := ini.ReadBool('Thread', 'LimitResCountMessage', True);
1355    
1356            // 冒険の書Cookie読み込み
1357            hostList := TStringList.Create;
1358            ini.ReadSection('Bouken', hostList);
1359            for i := 0 to hostList.Count - 1 do begin
1360                FBoukenCookieList.Add( hostList[i] + '=' +
1361                    ini.ReadString('Bouken', hostList[i], '') );
1362            end;
1363            hostList.Free;
1364    
1365            // ギコナビ更新で利用したインストーラの削除
1366            s := ini.ReadString('Update', 'Remove0', '');
1367            if (FileExists(s)) then begin
1368                SysUtils.DeleteFile(s);
1369                // 削除に失敗しても無視する
1370                ini.DeleteKey('Update', 'Remove0');
1371            end;
1372    
1373                  ini.UpdateFile;                  ini.UpdateFile;
1374          finally          finally
1375                  ini.Free;                  ini.Free;
# Line 1479  begin Line 1551  begin
1551                  //かしゅ〜しゃのスキンを使うか                  //かしゅ〜しゃのスキンを使うか
1552                  ini.WriteBool('CSS', 'UseKatjushaType', FUseKatjushaType);                  ini.WriteBool('CSS', 'UseKatjushaType', FUseKatjushaType);
1553                  //CSSファイル名                  //CSSファイル名
1554                  ini.WriteString('CSS', 'FileName', FCSSFileName);                  ini.WriteString('CSS', 'FileName', FSkinFiles.FileName);
1555                  //Mail欄表示                  //Mail欄表示
1556                  ini.WriteBool('Thread', 'ShowMail', FShowMail);                  ini.WriteBool('Thread', 'ShowMail', FShowMail);
1557                  // レス表示範囲                  // レス表示範囲
# Line 1487  begin Line 1559  begin
1559                  ini.WriteInteger('Thread', 'ResRange', FResRange);                  ini.WriteInteger('Thread', 'ResRange', FResRange);
1560                  ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold);                  ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold);
1561          ini.WriteInteger('Thread', 'HeadResCount', FHeadResCount);          ini.WriteInteger('Thread', 'HeadResCount', FHeadResCount);
1562            ini.WriteInteger('Thread','ResRangeExCount', FResRangeExCount);
1563                  // スレッド一覧表示範囲                  // スレッド一覧表示範囲
1564                  ini.WriteInteger('ThreadList', 'ThreadRange', Ord( FThreadRange ));                  ini.WriteInteger('ThreadList', 'ThreadRange', Ord( FThreadRange ));
1565                  //ログ削除確認                  //ログ削除確認
# Line 1522  begin Line 1595  begin
1595    
1596                  //ポップアップ位置                  //ポップアップ位置
1597                  ini.WriteInteger('Browser', 'PopupPosition', Ord(FPopupPosition));                  ini.WriteInteger('Browser', 'PopupPosition', Ord(FPopupPosition));
1598            ini.WriteInteger('Browser', 'RespopupDelteX', FRespopupDeltaX);
1599            ini.WriteInteger('Browser', 'RespopupDelteY', FRespopupDeltaY);
1600            ini.WriteInteger('Browser', 'RespopupWait', FRespopupWait);
1601            ini.WriteBool('Browser', 'RespopupMailTo', FRespopupMailTo);
1602            
1603                  //アドレスバー                  //アドレスバー
1604                  ini.WriteBool('AddressBar', 'URLDisplay', FURLDisplay);                  ini.WriteBool('AddressBar', 'URLDisplay', FURLDisplay);
1605                  ini.WriteBool('AddressBar', 'TabStop', FAddressBarTabStop);                  ini.WriteBool('AddressBar', 'TabStop', FAddressBarTabStop);
# Line 1638  begin Line 1715  begin
1715                  // エディタ                  // エディタ
1716                  ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );                  ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );
1717                  ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );                  ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );
1718            ini.WriteBool( 'Editor', 'UseGobakuCheck', FUseGobakuCheck );
1719    
1720                  //タブ自動保存                  //タブ自動保存
1721                  ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);                  ini.WriteBool('TabAuto', 'TabAutoLoadSave', FTabAutoLoadSave);
1722            ini.WriteString('Thread', 'LastCloseTabURL', FLastCloseTabURL);
1723                  //詳細設定                  //詳細設定
1724                  ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex);                  ini.WriteInteger('OptionDialog', 'KuroutTabIndex', FKuroutSettingTabIndex);
1725    
# Line 1662  begin Line 1741  begin
1741    
1742                  //認証用ユーザID・パスワード                  //認証用ユーザID・パスワード
1743                  ini.WriteString('Be', 'UserID', FBeUserID);                  ini.WriteString('Be', 'UserID', FBeUserID);
1744                  ini.WriteString('Be', 'Code', Encrypt(FBeCode));                  ini.WriteString('Be', 'Password', Encrypt(FBePassword));
1745                  ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);                  ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);
1746    
1747                  //履歴の最大保存件数                  //履歴の最大保存件数
# Line 1679  begin Line 1758  begin
1758          ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);          ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);
1759          ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);          ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);
1760          ini.WriteString('Function', 'ExtList', FExtList);          ini.WriteString('Function', 'ExtList', FExtList);
1761            ini.WriteBool('ThreadList', 'CheckDatFile', FCheckDatFile);
1762            ini.WriteBool('Thread', 'LimitResCountMessage', FLimitResCountMessage);
1763    
1764    
1765                    ini.UpdateFile;
1766            finally
1767                    ini.Free;
1768            end;
1769    end;
1770    //設定ファイル保存(冒険の書)
1771    procedure TSetting.WriteBoukenSettingFile;
1772    var
1773            i: Integer;
1774            ini: TMemIniFile;
1775    begin
1776            ini := TMemIniFile.Create(GetFileName());
1777            try
1778                    ini.EraseSection('Bouken');
1779            // 冒険の書Cookie書き込み
1780            for i := 0 to FBoukenCookieList.Count - 1 do begin
1781                ini.WriteString('Bouken', FBoukenCookieList.Names[i], FBoukenCookieList.Values[FBoukenCookieList.Names[i]]);
1782            end;
1783                  ini.UpdateFile;                  ini.UpdateFile;
1784          finally          finally
1785                  ini.Free;                  ini.Free;
# Line 1723  var Line 1824  var
1824  begin  begin
1825          ini := TMemIniFile.Create(GetFileName());          ini := TMemIniFile.Create(GetFileName());
1826          try          try
1827                  if ExtractFilePath(Application.ExeName) + 'Log' = NewLogFolder then                  if GetAppDir + 'Log' = NewLogFolder then
1828                          ini.DeleteKey('Folder', 'LogFolder')                          ini.DeleteKey('Folder', 'LogFolder')
1829                  else                  else
1830                          ini.WriteString('Folder', 'LogFolder', NewLogFolder);                          ini.WriteString('Folder', 'LogFolder', NewLogFolder);
# Line 1837  var Line 1938  var
1938  begin  begin
1939          for i := 0 to GetSoundCount - 1 do begin          for i := 0 to GetSoundCount - 1 do begin
1940                  if SoundName[i] = Name then begin                  if SoundName[i] = Name then begin
1941                          Result := SoundFileName[i];              SysUtils.SetCurrentDir(GetAppDir);
1942                            Result := ExpandFileName(SoundFileName[i]);
1943                          Exit;                          Exit;
1944                  end;                  end;
1945          end;          end;
# Line 1965  end; Line 2067  end;
2067   *************************************************************************)   *************************************************************************)
2068  function TSetting.GetBoardFileName: string;  function TSetting.GetBoardFileName: string;
2069  begin  begin
2070          Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_FILE_NAME;          Result := GetConfigDir + BOARD_FILE_NAME;
2071  end;  end;
2072    
2073  (*************************************************************************  (*************************************************************************
# Line 1973  end; Line 2075  end;
2075   *************************************************************************)   *************************************************************************)
2076  function TSetting.GetCustomBoardFileName: string;  function TSetting.GetCustomBoardFileName: string;
2077  begin  begin
2078          Result := GetAppDir + CONFIG_DIR_NAME + '\' + CUSTOMBOARD_FILE_NAME;          Result := GetConfigDir + CUSTOMBOARD_FILE_NAME;
2079  end;  end;
2080    
2081  (*************************************************************************  (*************************************************************************
2082   *ボードディレクトリ取得   *ボードディレクトリ取得(\で終わる)
2083   *************************************************************************)   *************************************************************************)
2084  function TSetting.GetBoardDir: string;  function TSetting.GetBoardDir: string;
2085  begin  begin
2086          Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_DIR_NAME + '\';          Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_DIR_NAME);
2087  end;  end;
2088    
2089  (*************************************************************************  (*************************************************************************
# Line 1994  end; Line 2096  end;
2096    
2097    
2098  (*************************************************************************  (*************************************************************************
2099   *実行ファイルフォルダ取得   *実行ファイルフォルダ取得(最後に\がある)
2100   *************************************************************************)   *************************************************************************)
2101  function TSetting.GetAppDir: string;  function TSetting.GetAppDir: string;
2102  begin  begin
# Line 2026  begin Line 2128  begin
2128  end;  end;
2129    
2130  (*************************************************************************  (*************************************************************************
2131   *Configフォルダ取得   *Configフォルダ取得(\で終わる)
2132   *************************************************************************)   *************************************************************************)
2133  function TSetting.GetConfigDir: string;  function TSetting.GetConfigDir: string;
2134  begin  begin
2135          Result := IncludeTrailingPathDelimiter(GetAppDir + CONFIG_DIR_NAME);          Result := IncludeTrailingPathDelimiter(GetAppDir + CONFIG_DIR_NAME);
2136  end;  end;
2137    (*************************************************************************
2138     *CSSフォルダ取得(\で終わる)
2139     *************************************************************************)
2140  function TSetting.GetStyleSheetDir: string;  function TSetting.GetStyleSheetDir: string;
2141  begin  begin
2142          Result := IncludeTrailingPathDelimiter(GetConfigDir + CSS_DIR_NAME);          Result := IncludeTrailingPathDelimiter(GetConfigDir + CSS_DIR_NAME);
2143  end;  end;
2144    (*************************************************************************
2145     *skinフォルダ取得(\で終わる)
2146     *************************************************************************)
2147  function TSetting.GetSkinDir: string;  function TSetting.GetSkinDir: string;
2148  begin  begin
2149          Result := IncludeTrailingPathDelimiter(GetConfigDir + SKIN_DIR_NAME);          Result := IncludeTrailingPathDelimiter(GetConfigDir + SKIN_DIR_NAME);
2150  end;  end;
2151    (*************************************************************************
2152  function TSetting.GetSkinHeaderFileName: string;   *NGワードディレクトリ取得(\で終わる)
2153  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;  
   
2154  function TSetting.GetNGWordsDir: string;  function TSetting.GetNGWordsDir: string;
2155  begin  begin
2156          Result := IncludeTrailingPathDelimiter(GetConfigDir + NGWORDs_DIR_NAME);          Result := IncludeTrailingPathDelimiter(GetConfigDir + NGWORDs_DIR_NAME);
2157  end;  end;
2158    (*************************************************************************
2159     *Boardプラグインディレクトリ取得(\で終わる)
2160     *************************************************************************)
2161  function TSetting.GetBoardPlugInDir: string;  function TSetting.GetBoardPlugInDir: string;
2162  begin  begin
2163          Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_PLUGIN_DIR_NAME);          Result := IncludeTrailingPathDelimiter(GetConfigDir + BOARD_PLUGIN_DIR_NAME);
# Line 2091  begin Line 2171  begin
2171          // ココでの判定でも大文字小文字の違いは無視する。          // ココでの判定でも大文字小文字の違いは無視する。
2172          FUseSkin :=          FUseSkin :=
2173                  UseCSS and                  UseCSS and
2174                  (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and                  (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
2175                  FileExists( GetSkinHeaderFileName );                  FileExists( FSkinFiles.GetSkinHeaderFileName );
2176    
2177  end;  end;
2178    
2179  procedure TSetting.SetCSSFileName( fileName: string );  procedure TSetting.SetCSSFileName( fileName: string );
2180  begin  begin
2181        FSkinFiles.FileName := fileName;
         FCSSFileName := fileName;  
2182          // Windows的にファイルパスの大文字小文字の違いは無視されるので、          // Windows的にファイルパスの大文字小文字の違いは無視されるので、
2183          // ココでの判定でも大文字小文字の違いは無視する。          // ココでの判定でも大文字小文字の違いは無視する。
2184          FUseSkin :=          FUseSkin :=
2185                  UseCSS and                  UseCSS and
2186                  (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(CSSFileName) ) > 0) and                  (Pos( AnsiLowerCase(GetSkinDir), AnsiLowerCase(FSkinFiles.FileName) ) > 0) and
2187                  FileExists( GetSkinHeaderFileName );                  FileExists( FSkinFiles.GetSkinHeaderFileName );
2188    
2189  end;  end;
2190    (*************************************************************************
2191     *samba設定ファイル名取得
2192     *************************************************************************)
2193  function TSetting.GetSambaFileName: string;  function TSetting.GetSambaFileName: string;
2194  begin  begin
2195          Result := GetAppDir + SAMBATIME_FILE_NAME;          Result := GetAppDir + SAMBATIME_FILE_NAME;
# Line 2156  function TSetting.GetReplaceFileName: St Line 2237  function TSetting.GetReplaceFileName: St
2237  begin  begin
2238      Result := GetConfigDir + REPLACE_FILE_NAME;      Result := GetConfigDir + REPLACE_FILE_NAME;
2239  end;  end;
2240    function TSetting.GetExtprevieFileName: String;
2241    begin
2242        Result := GetConfigDir + EXT_PREVIEW_FILE_NAME;
2243    end;
2244  procedure TSetting.SetMoveHistorySize(AVal : Integer);  procedure TSetting.SetMoveHistorySize(AVal : Integer);
2245  begin  begin
2246      if (AVal > 0) then begin      if (AVal > 0) then begin
# Line 2389  begin Line 2474  begin
2474                  end;                  end;
2475      end;      end;
2476  end;  end;
2477    
2478    function TSetting.GetCSSFileName: string;
2479    begin
2480        Result := FSkinFiles.FileName;
2481    end;
2482    function TSetting.GetBoukenCookie(AHostName: String): String;
2483    var
2484        i : Integer;
2485    begin
2486        for i := 0 to FBoukenCookieList.Count - 1 do begin
2487            if ( AnsiPos(FBoukenCookieList.Names[i], AHostName) > 0 ) then begin
2488                Result := FBoukenCookieList.Values[FBoukenCookieList.Names[i]];
2489                Break;
2490            end;
2491        end;
2492    end;
2493    procedure TSetting.SetBoukenCookie(ACookieValue, AHostName: String);
2494    var
2495        i : Integer;
2496    begin
2497        for i := 0 to FBoukenCookieList.Count - 1 do begin
2498            if ( FBoukenCookieList.Names[i] = AHostName ) then begin
2499                FBoukenCookieList[i] := AHostName + '=' + ACookieValue;
2500                Break;
2501            end;
2502        end;
2503        if ( i = FBoukenCookieList.Count ) then begin
2504            FBoukenCookieList.Add(AHostName + '=' + ACookieValue);
2505        end;
2506    end;
2507    procedure TSetting.GetBouken(AHostName: String; var Domain:String; var Cookie:String);
2508    var
2509        i : Integer;
2510    begin
2511        Cookie := '';
2512        for i := 0 to FBoukenCookieList.Count - 1 do begin
2513            if ( AnsiPos(FBoukenCookieList.Names[i], AHostName) > 0 ) then begin
2514                Domain := FBoukenCookieList.Names[i];
2515                Cookie := FBoukenCookieList.Values[FBoukenCookieList.Names[i]];
2516                Break;
2517            end;
2518        end;
2519    end;
2520    
2521  end.  end.
2522    

Legend:
Removed from v.1.120.2.2  
changed lines
  Added in v.1.144

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