fpc/utils/fpdoc/fpde/fpdeopts.pp
2005-02-14 17:13:06 +00:00

104 lines
2.3 KiB
ObjectPascal

{$mode objfpc}
{$H+}
unit fpdeopts;
Interface
uses SysUtils,IniFiles;
Var
SkipEmptyNodes : Boolean;
ConfirmDelete : Boolean;
CreateBackup : Boolean;
MaxRecentUsed : Integer;
BackupExtension : String;
DefaultExtension : String;
Procedure LoadOptions;
Procedure SaveOptions;
Function GetOptionFileName : String;
Implementation
Const
DefFilename = 'fpde.ini';
SecPrefs = 'Preferences';
KeySkipEmptyNodes = 'SkipEmptyNodes';
KeyConfirmDelete = 'ConfirmDelete';
KeyCreateBackup = 'CreateBackup';
KeyBackupExtension = 'BackupExtension';
KeyDefaultExtension = 'DefaultExtension';
KeyMaxRecentUsed = 'MaxMRUitems';
{$ifndef win32}
Function GetOptionFileName : String;
Const
fpdedir = '.fpde';
Var
HomeDir : String;
begin
HomeDir:=GetEnvironmentVariable('HOME');
If (HomeDir<>'') then
begin
HomeDir:=IncludeTrailingPathDelimiter(HomeDir)+fpdedir;
If not DirectoryExists(HomeDir) then
If Not CreateDir(HomeDir) then
HomeDir:=''
else
HomeDir:=HomeDir;
end;
Result:=IncludeTrailingPathDelimiter(HomeDir)+DefFileName;
end;
{$else}
Function GetOptionFileName : String;
begin
Result:=ExtractFilePath(Paramstr(0))+DefFileName;
end;
{$endif}
Procedure LoadOptions;
begin
With TInifile.Create(GetOptionFileName) do
Try
SkipEmptyNodes:=ReadBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
ConfirmDelete:=ReadBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
CreateBackup:=ReadBool(SecPrefs,KeyCreateBackup,CreateBackup);
BackupExtension:=ReadString(SecPrefs,KeyBackupExtension,BackupExtension);
DefaultExtension:=ReadString(SecPrefs,KeyDefaultExtension,DefaultExtension);
finally
Free;
end;
end;
Procedure SaveOptions;
begin
With TInifile.Create(GetOptionFileName) do
Try
WriteBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
WriteBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
WriteBool(SecPrefs,KeyCreateBackup,CreateBackup);
WriteString(SecPrefs,KeyBackupExtension,BackupExtension);
WriteString(SecPrefs,KeyDefaultExtension,DefaultExtension);
UpdateFile;
finally
Free;
end;
end;
Initialization
SkipEmptyNodes := True;
ConfirmDelete := True;
CreateBackup := True;
BackupExtension := '.~xml';
DefaultExtension := '.xml';
MaxRecentUSed := 10;
end.