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
type
TGikoTabPosition = (gtpTop, gtpBottom); // \83^\83u\88Ê\92u
- TGikoTabAppend = (gtaFirst, gtpLast); // \83^\83u\92Ç\89Á\88Ê\92u
+ TGikoTabAppend = (gtaFirst, gtaLast, gtaRight, gtaLeft); // \83^\83u\92Ç\89Á\88Ê\92u
TGikoTabStyle = (gtsTab, gtsButton, gtsFlat); // \83^\83u\83X\83^\83C\83\8b
TGikoListOrientation = (gloHorizontal, gloVertical); // \83\8a\83X\83g\90\82\92¼\81E\90\85\95½
TGikoListState = (glsMax, glsNormal, glsMin); // \83\8a\83X\83g\83T\83C\83Y\8fó\91Ô
// \83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92u
- TGikoPopupPosition = (gppRightTop, gppTop, gppLeftTop,
- gppRight, gppCenter, gppLeft,
- gppRightBottom, gppBottom, gppLeftBottom);
+ TGikoPopupPosition = (gppLeftTop = 0, gppTop, gppRightTop,
+ gppLeft, gppCenter, gppRight,
+ gppLeftBottom, gppBottom, gppRightBottom);
//\83v\83\8c\83r\83\85\81[\83T\83C\83Y
TGikoPreviewSize = (gpsXLarge, gpsLarge, gpsMedium, gpsSmall, gpsXSmall);
TGikoBrowserAutoMaximize = (gbmNone, gbmClick, gbmDoubleClick);
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©
FUnActivePopup: Boolean;
//\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
FResPopupHeaderBold: Boolean;
+ // BE\83A\83C\83R\83\93\81EEmoticon\89æ\91\9c\95\\8e¦
+ FIconImageDisplay: Boolean;
+ // \83X\83\8c\83^\83C\93Á\92è\95¶\8e\9a\97ñ\8f\9c\8b\8e
+ FThreadTitleTrim: Boolean;
//\83\8d\83O\83t\83H\83\8b\83_
FLogFolder: string;
FDeleteSyria : Boolean; //\83V\83\8a\83A\8cê\83u\83\89\83N\83\89\91Î\8dô
FIgnoreKana : Boolean; //\91S\94¼\8ap\82Ð\82ç\83J\83i\82Ì\88á\82¢\82ð\96³\8e\8b\82·\82é\82©
+ //NG\83\8f\81[\83h\95Ò\8fW
+ FNGTextEditor: Boolean; //\95Ò\8fW\82É\83e\83L\83X\83g\83G\83f\83B\83^\82ð\8eg\97p\82·\82é\82©
+ FNGWindowTop: Integer;
+ FNGWindowLeft: Integer;
+ FNGWindowHeight: Integer;
+ FNGWindowWidth: Integer;
+ FNGWindowMax: Boolean;
+
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
FSelectComboBoxWidth : Integer;
//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;
//Be2ch
//\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
FBeUserID: String;
- FBeCode: String;
+ FBePassword: String;
FBeAutoLogin: Boolean;
FBeLogin: Boolean;
//\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
FLoopBrowserTabs : Boolean;
//! 100\83\8c\83X\95\\8e¦\82Ì\90æ\93ª\95\\8e¦\83\8c\83X\90\94
FHeadResCount : Integer;
+ //! 100\83\8c\83X\95\\8e¦\90\94\81i\8ag\92£\97p\81j
+ FResRangeExCount: Integer;
//! \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
FAddKeywordLink: Boolean;
//! dat\92u\8a·\82ð\97L\8cø\82É\82·\82é
FReplaceDat: Boolean;
//! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
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;
+ //! \93¯ID\83\8c\83X\83A\83\93\83J\81[\95\\8e¦
+ FLimitResCountMessage: Boolean;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaX
+ FRespopupDeltaX: Integer;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaY
+ FRespopupDeltaY: Integer;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\83^\83C\83}\81[
+ FRespopupWait: Integer;
+ //! \83\81\81[\83\8b\97\93\83\8c\83X\83|\83b\83v\83A\83b\83v
+ FRespopupMailTo: Boolean;
+ //! \8cë\94\9a\83`\83F\83b\83N
+ FUseGobakuCheck: Boolean;
+ //! Unicode\94Å\83G\83f\83B\83^
+ FUseUnicode: Boolean;
+ //! \8dí\8f\9c\97v\90¿\94Â\82ð\93Á\95Ê\88µ\82¢
+ FSakuBoard: Boolean;
+
+ //! \83X\83\8c\83^\83C\8c\9f\8dõ\83E\83B\83\93\83h\83E
+ FThrdSrchTop: Integer;
+ FThrdSrchLeft: Integer;
+ FThrdSrchWidth: Integer;
+ FThrdSrchHeight: Integer;
+ FThrdSrchMax: Boolean;
+ FThrdSrchStay: Boolean;
+ FThrdSrchCol1W: Integer;
+ FThrdSrchCol2W: Integer;
+ FThrdSrchCol3W: Integer;
+ FThrdSrchCol4W: Integer;
+ FThrdSrchHistory: TStringList;
+
+ //! \96`\8c¯\82Ì\8f\91\97pCookie
+ FBoukenCookieList: TStringList;
function GetMainCoolSet(Index: Integer): TCoolSet;
function GetBoardCoolSet(Index: Integer): TCoolSet;
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Ý
procedure WriteNameMailSettingFile;
procedure WriteFolderSettingFile();
procedure WriteBoardURLSettingFile;
+ procedure WriteBoukenSettingFile;
function GetSoundCount: Integer;
function FindSoundFileName(Name: string): string;
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 GetDefaultFilesFileName: string;
function GetNGWordsDir: string;
function GetBoardPlugInDir: string;
function GetSambaFileName: string;
procedure WriteLogFolder(AVal : String);
function GetInputAssistFileName : String;
function GetReplaceFileName: String;
+ function GetExtprevieFileName: String;
+ function GetBoukenCookie(AHostName: String): String;
+ procedure SetBoukenCookie(ACookieValue, AHostName: String);
+ procedure GetBouken(AHostName: String; var Domain:String; var Cookie:String);
{
\brief \83\8a\83\93\83N\97\9a\97ð\82Ì\95Û\8e\9d\83T\83C\83Y\82Ìsetter
- \param AVal \90Ý\92è\82·\82é\83T\83C\83Y( >0)
+ \param AVal \90Ý\92è\82·\82é\83T\83C\83Y( >0)
}
procedure SetMoveHistorySize(AVal : Integer);
//\8eó\90M\83o\83b\83t\83@\83T\83C\83Y
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;
property ThreadRange : TGikoThreadRange read FThreadRange write FThreadRange;
property UnActivePopup: Boolean read FUnActivePopup write FUnActivePopup;
property ResPopupHeaderBold: Boolean read FResPopupHeaderBold write FResPopupHeaderBold;
+ property IconImageDisplay: Boolean read FIconImageDisplay write FIconImageDisplay;
+ property ThreadTitleTrim: Boolean read FThreadTitleTrim write FThreadTitleTrim;
property LogFolder: string read FLogFolder write WriteLogFolder;
property LogFolderP: string read FLogFolderP;
property AddResAnchor : Boolean read FAddResAnchor write FAddResAnchor;
property DeleteSyria : Boolean read FDeleteSyria write FDeleteSyria;
property IgnoreKana : Boolean read FIgnoreKana write FIgnoreKana;
+
+ //NG\83\8f\81[\83h\95Ò\8fW
+ property NGTextEditor: Boolean read FNGTextEditor write FNGTextEditor;
+ property NGWindowTop: Integer read FNGWindowTop write FNGWindowTop;
+ property NGWindowLeft: Integer read FNGWindowLeft write FNGWindowLeft;
+ property NGWindowHeight: Integer read FNGWindowHeight write FNGWindowHeight;
+ property NGWindowWidth: Integer read FNGWindowWidth write FNGWindowWidth;
+ property NGWindowMax: Boolean read FNGWindowMax write FNGWindowMax;
+
// \83X\83\8c\83b\83h\8di\8d\9e\83t\83B\81[\83\8b\83h\82Ì\95\9d
property SelectComboBoxWidth : Integer read FSelectComboBoxWidth write FSelectComboBoxWidth;
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;
property UseUndecided: Boolean read FUseUndecided write FUseUndecided;
property BeUserID: string read FBeUserID write FBeUserID;
- property BeCode: string read FBeCode write FBeCode;
+ property BePassword: string read FBePassword write FBePassword;
property BeAutoLogin: Boolean read FBeAutoLogin write FBeAutoLogin;
property BeLogin: Boolean read FBeLogin write FBeLogin;
property MaxRecordCount : Integer read FMaxRecordCount write FMaxRecordCount;
property LoopBrowserTabs : Boolean read FLoopBrowserTabs write FLoopBrowserTabs;
//! 100\83\8c\83X\95\\8e¦\82Ì\90æ\93ª\95\\8e¦\83\8c\83X\90\94
property HeadResCount : Integer read FHeadResCount write FHeadResCount;
+ //! 100\83\8c\83X\95\\8e¦\90\94\81i\8ag\92£\97p\81j
+ property ResRangeExCount: Integer read FResRangeExCount write FResRangeExCount;
//! \8aÖ\98A\83L\81[\83\8f\81[\83h\92Ç\89Á\83t\83\89\83O
property AddKeywordLink: Boolean read FAddKeywordLink write FAddKeywordLink;
//! dat\82Ì\92u\8a·\82ð\97L\8cø\82É\82·\82é\82©
property ReplaceDat: Boolean read FReplaceDat write FReplaceDat;
//! sent.ini\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\81i\92P\88ÊMB\81j
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;
+ property LimitResCountMessage: Boolean read FLimitResCountMessage write FLimitResCountMessage;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaX
+ property RespopupDeltaX: Integer read FRespopupDeltaX write FRespopupDeltaX;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦\88Ê\92udeltaY
+ property RespopupDeltaY: Integer read FRespopupDeltaY write FRespopupDeltaY;
+ //! \83\8c\83X\83|\83b\83v\83A\83b\83v\83^\83C\83}\81[
+ property RespopupWait: Integer read FRespopupWait write FRespopupWait;
+ property RespopupMailTo: Boolean read FRespopupMailTo write FRespopupMailTo;
+ //! \8cë\94\9a\83`\83F\83b\83N
+ property UseGobakuCheck: Boolean read FUseGobakuCheck write FUseGobakuCheck;
+ //! Unicode\94Å\83G\83f\83B\83^
+ property UseUnicode: Boolean read FUseUnicode write FUseUnicode;
+ //! \8dí\8f\9c\97v\90¿\94Â\82ð\93Á\95Ê\88µ\82¢
+ property SakuBoard: Boolean read FSakuBoard write FSakuBoard;
+ //! \83X\83\8c\83^\83C\8c\9f\8dõ\83E\83B\83\93\83h\83E
+ //! \83X\83\8c\83^\83C\8c\9f\8dõ\83E\83B\83\93\83h\83E
+ property ThrdSrchTop: Integer read FThrdSrchTop write FThrdSrchTop;
+ property ThrdSrchLeft: Integer read FThrdSrchLeft write FThrdSrchLeft;
+ property ThrdSrchWidth: Integer read FThrdSrchWidth write FThrdSrchWidth;
+ property ThrdSrchHeight: Integer read FThrdSrchHeight write FThrdSrchHeight;
+ property ThrdSrchMax: Boolean read FThrdSrchMax write FThrdSrchMax;
+ property ThrdSrchStay: Boolean read FThrdSrchStay write FThrdSrchStay;
+ property ThrdSrchCol1W: Integer read FThrdSrchCol1W write FThrdSrchCol1W;
+ property ThrdSrchCol2W: Integer read FThrdSrchCol2W write FThrdSrchCol2W;
+ property ThrdSrchCol3W: Integer read FThrdSrchCol3W write FThrdSrchCol3W;
+ property ThrdSrchCol4W: Integer read FThrdSrchCol4W write FThrdSrchCol4W;
+ property ThrdSrchHistory: TStringList read FThrdSrchHistory write FThrdSrchHistory;
+ //! \96`\8c¯\82Ì\8f\91
+ property BoukenCookieList: TStringList read FBoukenCookieList write FBoukenCookieList;
end;
TEMP_FOLDER = 'Temp';
OUTBOX_FILE_NAME = 'outbox.ini';
SENT_FILE_NAME = 'sent.ini';
+ DEFFILES_FILE_NAME = 'defaultFiles.ini';
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';
SPAMFILTER_FILE_NAME = 'SpamFilter.ini';
LANGUAGE_FILE_NAME = 'language.ini';
INPUTASSIST_FILE_NAME = 'InputAssist.ini';
- FIXED_COOKIE = 'hana=mogera';
+ FIXED_COOKIE = '';
REPLACE_FILE_NAME = 'replace.ini';
+ EXT_PREVIEW_FILE_NAME = 'extpreview.ini';
implementation
FCategoryColumnOrder := TGikoCategoryColumnList.Create;
FBoardColumnOrder := TGikoBoardColumnList.Create;
FGestures := TGestureModel.Create;
+ FSkinFiles := TSkinFiles.Create;
FNameList.Duplicates := dupIgnore;
FMailList.Duplicates := dupIgnore;
FBoardURLs.Duplicates := dupIgnore;
FSelectTextList.Duplicates := dupIgnore;
+ FThrdSrchHistory := TStringList.Create;
+ FBoukenCookieList := TStringList.Create;
ReadSettingFile();
ReadBoardURLsFile();
end;
//\83f\83X\83g\83\89\83N\83^
destructor TSetting.Destroy();
begin
+ FThrdSrchHistory.Free;
+ FBoukenCookieList.Free;
+ FBoardColumnOrder.Free;
+ FCategoryColumnOrder.Free;
+ FBBSColumnOrder.Free;
+ FSelectTextList.Free;
+ FBoardURLs.Free;
+ FMailList.Free;
+ FNameList.Free;
+ FGestures.Free;
+ FSkinFiles.Free;
inherited;
- FBoardColumnOrder.Free;
- FCategoryColumnOrder.Free;
- FBBSColumnOrder.Free;
- FSelectTextList.Free;
- FBoardURLs.Free;
- FMailList.Free;
- FNameList.Free;
- FGestures.Free;
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
ini: TMemIniFile;
i: Integer;
Exists: Boolean;
- s: string;
+ s: string;
CoolSet: TCoolSet;
msg: String;
+ hostList: TStringList;
+ Cnt: Integer;
begin
Exists := FileExists(GetFileName);
ini := TMemIniFile.Create(GetFileName);
FResRange := ini.ReadInteger( 'Thread', 'ResRange', Ord( grrAll ) );
FResRangeHold := ini.ReadBool( 'Thread', 'ResRangeHold', False );
FHeadResCount := ini.ReadInteger('Thread', 'HeadResCount', 1);
+ FResRangeExCount:= ini.ReadInteger('Thread','ResRangeExCount', 100);
// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
FThreadRange := TGikoThreadRange( ini.ReadInteger('ThreadList', 'ThreadRange', Ord( gtrAll )) );
//\94ñ\83A\83N\83e\83B\83u\8e\9e\83\8c\83X\83|\83b\83v\83A\83b\83v\95\\8e¦
FUnActivePopup := ini.ReadBool('Thread', 'UnActivePopup', False);
//\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
FResPopupHeaderBold := ini.ReadBool('Thread', 'ResPopupHeaderBold', True);
+ // BE\83A\83C\83R\83\93\81EEmoticon\89æ\91\9c\95\\8e¦
+ FIconImageDisplay := ini.ReadBool('Thread', 'IconImageDisplay', True);
+ // \83X\83\8c\83^\83C\93Á\92è\95¶\8e\9a\97ñ\8f\9c\8b\8e
+ FThreadTitleTrim := ini.ReadBool('Thread', 'ThreadTitleTrim', False);
//\8dí\8f\9c\8am\94F
FDeleteMsg := ini.ReadBool('Function', 'LogDeleteMessage', True);
//\8fI\97¹\8am\94F
//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
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;
+ FRespopupDeltaX := ini.ReadInteger('Browser', 'RespopupDelteX', 5);
+ FRespopupDeltaY := ini.ReadInteger('Browser', 'RespopupDelteY', 5);
+ FRespopupWait := ini.ReadInteger('Browser', 'RespopupWait', 1000);
+ FRespopupMailTo := ini.ReadBool('Browser', 'RespopupMailTo', true);
//\83A\83h\83\8c\83X\83o\81[
FURLDisplay := ini.ReadBool('AddressBar', 'URLDisplay', False);
//\83T\83E\83\93\83h
if Exists then begin
+ SetCurrentDir(ExtractFilePath(Application.ExeName));
for i := 0 to GetSoundCount - 1 do begin
SoundFileName[i] := ini.ReadString('Sound', SoundName[i], '');
- if not FileExists(SoundFileName[i]) then
- SoundFileName[i] := '';
+ // \91\8a\91Î\8eQ\8fÆ\91Î\8dô
+ // \83t\83@\83C\83\8b\82Ì\91¶\8dÝ\83`\83F\83b\83N
+ if not FileExists(ExpandFileName(SoundFileName[i])) then begin
+ SoundFileName[i] := '';
+ end;
end;
end else begin
- s := ExtractFileDir(Application.ExeName) + '\sound\';
+ s := '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';
FDeleteSyria := ini.ReadBool('Abon','DeleteSyria',false);
FIgnoreKana := ini.ReadBool('Abon','IgnoreKana',false);
+ //NG\83\8f\81[\83h\95Ò\8fW
+ FNGTextEditor := ini.ReadBool('NGWordEditor', 'NGTextEditor', False);
+ FNGWindowTop := ini.ReadInteger('NGWordEditor', 'NGWindowTop', 100);
+ FNGWindowLeft := ini.ReadInteger('NGWordEditor', 'NGWindowLeft', 100);
+ FNGWindowHeight := ini.ReadInteger('NGWordEditor', 'NGWindowHeight', 478);
+ FNGWindowWidth := ini.ReadInteger('NGWordEditor', 'NGWindowWidth', 845);
+ FNGWindowMax := ini.ReadBool('NGWordEditor', 'NGWindowMax', False);
+
// \83G\83f\83B\83^
FSpaceToNBSP := ini.ReadBool( 'Editor', 'SpaceToNBSP', False );
FAmpToCharRef := ini.ReadBool( 'Editor', 'AmpToCharRef', False );
+ FUseGobakuCheck := ini.ReadBool( 'Editor', 'UseGobakuCheck', True );
+ FUseUnicode := ini.ReadBool( 'Editor', 'UseUnicode', False );
//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[
//Be2ch
//\94F\8fØ\97p\83\86\81[\83UID\81E\94F\8fØ\83R\81[\83h
FBeUserID := ini.ReadString('Be', 'UserID', '');
- FBeCode := Decrypt(ini.ReadString('Be', 'Code', ''));
+ FBePassword := Decrypt(ini.ReadString('Be', 'Password', ''));
FBeAutoLogin := ini.ReadBool('Be', 'AutoLogin', False);
//\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
FMaxRecordCount := Max(ini.ReadInteger('Recode', 'Max', 100), 1);
+ //! \8dí\8f\9c\97v\90¿\94Â\82ð\93Á\95Ê\88µ\82¢
+ FSakuBoard := ini.ReadBool('NewBoard', 'SakuSpecial', True);
+
// \93ü\97Í\83A\83V\83X\83g
FInputAssistFormTop := ini.ReadInteger('IAtWindowsSize', 'Top', 0);
FInputAssistFormLeft := ini.ReadInteger('IAtWindowsSize', 'Left', 0);
FInputAssistFormWidth := ini.ReadInteger('IAtWindowsSize', 'Width', 400);
FInputAssistFormHeight := ini.ReadInteger('IAtWindowsSize', 'Height', 460);
+ //! \83X\83\8c\83^\83C\8c\9f\8dõ\83E\83B\83\93\83h\83E
+ FThrdSrchTop := ini.ReadInteger('ThreadSearch', 'Top', 0);
+ FThrdSrchLeft := ini.ReadInteger('ThreadSearch', 'Left', 0);
+ FThrdSrchWidth := ini.ReadInteger('ThreadSearch', 'Width', 526);
+ FThrdSrchHeight := ini.ReadInteger('ThreadSearch', 'Height', 550);
+ FThrdSrchMax := ini.ReadBool( 'ThreadSearch', 'Max', False);
+ FThrdSrchStay := ini.ReadBool( 'ThreadSearch', 'Stay', False);
+ FThrdSrchCol1W := ini.ReadInteger('ThreadSearch', 'Col1W', 80);
+ FThrdSrchCol2W := ini.ReadInteger('ThreadSearch', 'Col2W', 350);
+ FThrdSrchCol3W := ini.ReadInteger('ThreadSearch', 'Col3W', 40);
+ FThrdSrchCol4W := ini.ReadInteger('ThreadSearch', 'Col4W', 500);
+ Cnt := ini.ReadInteger('ThreadSearch', 'HistoryCount', 0);
+ if (Cnt > 0) then begin
+ for i := 1 to Cnt do begin
+ s := ini.ReadString('ThreadSearch', 'History' + IntToStr(i), '');
+ if (s <> '') then
+ FThrdSrchHistory.Add(s);
+ end;
+ end;
+
// Cookie\82É\95t\89Á\82·\82é\8cÅ\92è\83R\81[\83h
FFixedCookie := ini.ReadString('Cookie', 'fixedString', FIXED_COOKIE);
end;
FSentIniFileSize := ini.ReadInteger('Function', 'SentIniFileSize', 3);
+ FExtList := ini.ReadString('Function', 'ExtList', '*.gif;*.jpg;*.jpeg;*.png;*.zip;*.rar');
+
+ FCheckDatFile := ini.ReadBool('ThreadList', 'CheckDatFile', True);
+ FLimitResCountMessage := ini.ReadBool('Thread', 'LimitResCountMessage', True);
+
+ // \96`\8c¯\82Ì\8f\91Cookie\93Ç\82Ý\8d\9e\82Ý
+ hostList := TStringList.Create;
+ ini.ReadSection('Bouken', hostList);
+ for i := 0 to hostList.Count - 1 do begin
+ FBoukenCookieList.Add( hostList[i] + '=' +
+ ini.ReadString('Bouken', hostList[i], '') );
+ end;
+ hostList.Free;
+
+ // \83M\83R\83i\83r\8dX\90V\82Å\97\98\97p\82µ\82½\83C\83\93\83X\83g\81[\83\89\82Ì\8dí\8f\9c
+ s := ini.ReadString('Update', 'Remove0', '');
+ if (FileExists(s)) then begin
+ SysUtils.DeleteFile(s);
+ // \8dí\8f\9c\82É\8e¸\94s\82µ\82Ä\82à\96³\8e\8b\82·\82é
+ ini.DeleteKey('Update', 'Remove0');
+ end;
ini.UpdateFile;
finally
//\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Í
ini.WriteInteger('Thread', 'ResRange', FResRange);
ini.WriteBool('Thread', 'ResRangeHold', FResRangeHold);
ini.WriteInteger('Thread', 'HeadResCount', FHeadResCount);
+ ini.WriteInteger('Thread','ResRangeExCount', FResRangeExCount);
// \83X\83\8c\83b\83h\88ê\97\97\95\\8e¦\94Í\88Í
ini.WriteInteger('ThreadList', 'ThreadRange', Ord( FThreadRange ));
//\83\8d\83O\8dí\8f\9c\8am\94F
ini.WriteBool('Thread', 'UnActivePopup', FUnActivePopup);
//\83\8c\83X\83|\83b\83v\83A\83b\83v\83w\83b\83_\81[\83{\81[\83\8b\83h
ini.WriteBool('Thread', 'ResPopupHeaderBold', FResPopupHeaderBold);
+ // BE\83A\83C\83R\83\93\81EEmoticon\89æ\91\9c\95\\8e¦
+ ini.WriteBool('Thread', 'IconImageDisplay', FIconImageDisplay);
+ // \83X\83\8c\83^\83C\93Á\92è\95¶\8e\9a\97ñ\8f\9c\8b\8e
+ ini.WriteBool('Thread', 'ThreadTitleTrim', FThreadTitleTrim);
//ini.WriteString('BoardURL', '2ch', FBoardURL2ch);
//\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
//\83|\83b\83v\83A\83b\83v\88Ê\92u
ini.WriteInteger('Browser', 'PopupPosition', Ord(FPopupPosition));
-
+ ini.WriteInteger('Browser', 'RespopupDelteX', FRespopupDeltaX);
+ ini.WriteInteger('Browser', 'RespopupDelteY', FRespopupDeltaY);
+ ini.WriteInteger('Browser', 'RespopupWait', FRespopupWait);
+ ini.WriteBool('Browser', 'RespopupMailTo', FRespopupMailTo);
+
//\83A\83h\83\8c\83X\83o\81[
ini.WriteBool('AddressBar', 'URLDisplay', FURLDisplay);
ini.WriteBool('AddressBar', 'TabStop', FAddressBarTabStop);
ini.WriteBool('Abon','DeleteSyria',FDeleteSyria);
ini.WriteBool('Abon','IgnoreKana', FIgnoreKana);
+ //NG\83\8f\81[\83h\95Ò\8fW
+ ini.WriteBool('NGWordEditor', 'NGTextEditor', FNGTextEditor);
+ ini.WriteInteger('NGWordEditor', 'NGWindowTop', FNGWindowTop);
+ ini.WriteInteger('NGWordEditor', 'NGWindowLeft', FNGWindowLeft);
+ ini.WriteInteger('NGWordEditor', 'NGWindowHeight', FNGWindowHeight);
+ ini.WriteInteger('NGWordEditor', 'NGWindowWidth', FNGWindowWidth);
+ ini.WriteBool('NGWordEditor', 'NGWindowMax', FNGWindowMax);
+
// \83G\83f\83B\83^
ini.WriteBool( 'Editor', 'SpaceToNBSP', FSpaceToNBSP );
ini.WriteBool( 'Editor', 'AmpToCharRef', FAmpToCharRef );
+ ini.WriteBool( 'Editor', 'UseGobakuCheck', FUseGobakuCheck );
+ ini.WriteBool( 'Editor', 'UseUnicode', FUseUnicode );
+
+ //! \8dí\8f\9c\97v\90¿\94Â\82ð\93Á\95Ê\88µ\82¢
+ ini.WriteBool('NewBoard', 'SakuSpecial', FSakuBoard);
//\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);
//\94F\8fØ\97p\83\86\81[\83UID\81E\83p\83X\83\8f\81[\83h
ini.WriteString('Be', 'UserID', FBeUserID);
- ini.WriteString('Be', 'Code', Encrypt(FBeCode));
+ ini.WriteString('Be', 'Password', Encrypt(FBePassword));
ini.WriteBool('Be', 'AutoLogin', FBeAutoLogin);
//\97\9a\97ð\82Ì\8dÅ\91å\95Û\91¶\8c\8f\90\94
ini.WriteBool('Thread', 'AddKeywordLink', FAddKeywordLink);
ini.WriteBool('Thread', 'ReplaceDat', FReplaceDat);
ini.WriteInteger('Function', 'SentIniFileSize', FSentIniFileSize);
+ ini.WriteString('Function', 'ExtList', FExtList);
+ ini.WriteBool('ThreadList', 'CheckDatFile', FCheckDatFile);
+ ini.WriteBool('Thread', 'LimitResCountMessage', FLimitResCountMessage);
+
+ //! \83X\83\8c\83^\83C\8c\9f\8dõ\83E\83B\83\93\83h\83E
+ ini.WriteInteger('ThreadSearch', 'Top', FThrdSrchTop);
+ ini.WriteInteger('ThreadSearch', 'Left', FThrdSrchLeft);
+ ini.WriteInteger('ThreadSearch', 'Width', FThrdSrchWidth);
+ ini.WriteInteger('ThreadSearch', 'Height', FThrdSrchHeight);
+ ini.WriteBool( 'ThreadSearch', 'Max', FThrdSrchMax);
+ ini.WriteBool( 'ThreadSearch', 'Stay', FThrdSrchStay);
+ ini.WriteInteger('ThreadSearch', 'Col1W', FThrdSrchCol1W);
+ ini.WriteInteger('ThreadSearch', 'Col2W', FThrdSrchCol2W);
+ ini.WriteInteger('ThreadSearch', 'Col3W', FThrdSrchCol3W);
+ ini.WriteInteger('ThreadSearch', 'Col4W', FThrdSrchCol4W);
+ ini.WriteInteger('ThreadSearch', 'HistoryCount', FThrdSrchHistory.Count);
+ if (FThrdSrchHistory.Count > 0) then begin
+ for i := 1 to FThrdSrchHistory.Count do begin
+ ini.WriteString('ThreadSearch', 'History' + IntToStr(i), FThrdSrchHistory.Strings[i-1]);
+ end;
+ end;
+
+
+ ini.UpdateFile;
+ finally
+ ini.Free;
+ end;
+end;
+//\90Ý\92è\83t\83@\83C\83\8b\95Û\91¶(\96`\8c¯\82Ì\8f\91)
+procedure TSetting.WriteBoukenSettingFile;
+var
+ i: Integer;
+ ini: TMemIniFile;
+begin
+ ini := TMemIniFile.Create(GetFileName());
+ try
+ ini.EraseSection('Bouken');
+ // \96`\8c¯\82Ì\8f\91Cookie\8f\91\82«\8d\9e\82Ý
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ ini.WriteString('Bouken', FBoukenCookieList.Names[i], FBoukenCookieList.Values[FBoukenCookieList.Names[i]]);
+ end;
ini.UpdateFile;
finally
ini.Free;
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);
begin
for i := 0 to GetSoundCount - 1 do begin
if SoundName[i] = Name then begin
- Result := SoundFileName[i];
+ SysUtils.SetCurrentDir(GetAppDir);
+ Result := ExpandFileName(SoundFileName[i]);
Exit;
end;
end;
*************************************************************************)
function TSetting.GetBoardFileName: string;
begin
- Result := GetAppDir + CONFIG_DIR_NAME + '\' + BOARD_FILE_NAME;
+ Result := GetConfigDir + BOARD_FILE_NAME;
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;
(*************************************************************************
(*************************************************************************
- *\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
end;
(*************************************************************************
- *Config\83t\83H\83\8b\83_\8eæ\93¾
+ *defaultFiles.ini\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
+ *************************************************************************)
+function TSetting.GetDefaultFilesFileName: string;
+begin
+ Result := GetAppDir + DEFFILES_FILE_NAME;
+end;
+
+(*************************************************************************
+ *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);
// \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;
begin
Result := GetConfigDir + REPLACE_FILE_NAME;
end;
+function TSetting.GetExtprevieFileName: String;
+begin
+ Result := GetConfigDir + EXT_PREVIEW_FILE_NAME;
+end;
procedure TSetting.SetMoveHistorySize(AVal : Integer);
begin
if (AVal > 0) then begin
end;
end;
end;
+
+function TSetting.GetCSSFileName: string;
+begin
+ Result := FSkinFiles.FileName;
+end;
+function TSetting.GetBoukenCookie(AHostName: String): String;
+var
+ i : Integer;
+begin
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ if ( AnsiPos(FBoukenCookieList.Names[i], AHostName) > 0 ) then begin
+ Result := FBoukenCookieList.Values[FBoukenCookieList.Names[i]];
+ Break;
+ end;
+ end;
+end;
+procedure TSetting.SetBoukenCookie(ACookieValue, AHostName: String);
+var
+ i : Integer;
+begin
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ if ( FBoukenCookieList.Names[i] = AHostName ) then begin
+ FBoukenCookieList[i] := AHostName + '=' + ACookieValue;
+ Break;
+ end;
+ end;
+ if ( i = FBoukenCookieList.Count ) then begin
+ FBoukenCookieList.Add(AHostName + '=' + ACookieValue);
+ end;
+end;
+procedure TSetting.GetBouken(AHostName: String; var Domain:String; var Cookie:String);
+var
+ i : Integer;
+begin
+ Cookie := '';
+ for i := 0 to FBoukenCookieList.Count - 1 do begin
+ if ( AnsiPos(FBoukenCookieList.Names[i], AHostName) > 0 ) then begin
+ Domain := FBoukenCookieList.Names[i];
+ Cookie := FBoukenCookieList.Values[FBoukenCookieList.Names[i]];
+ Break;
+ end;
+ end;
+end;
+
end.