fpdeopts.pp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. {$mode objfpc}
  2. {$H+}
  3. unit fpdeopts;
  4. Interface
  5. uses SysUtils,IniFiles;
  6. Var
  7. SkipEmptyNodes : Boolean;
  8. ConfirmDelete : Boolean;
  9. CreateBackup : Boolean;
  10. MaxRecentUsed : Integer;
  11. BackupExtension : String;
  12. DefaultExtension : String;
  13. Procedure LoadOptions;
  14. Procedure SaveOptions;
  15. Function GetOptionFileName : String;
  16. Implementation
  17. Const
  18. DefFilename = 'fpde.ini';
  19. SecPrefs = 'Preferences';
  20. KeySkipEmptyNodes = 'SkipEmptyNodes';
  21. KeyConfirmDelete = 'ConfirmDelete';
  22. KeyCreateBackup = 'CreateBackup';
  23. KeyBackupExtension = 'BackupExtension';
  24. KeyDefaultExtension = 'DefaultExtension';
  25. KeyMaxRecentUsed = 'MaxMRUitems';
  26. {$ifndef win32}
  27. Function GetOptionFileName : String;
  28. Const
  29. fpdedir = '.fpde';
  30. Var
  31. HomeDir : String;
  32. begin
  33. HomeDir:=GetEnvironmentVariable('HOME');
  34. If (HomeDir<>'') then
  35. begin
  36. HomeDir:=IncludeTrailingPathDelimiter(HomeDir)+fpdedir;
  37. If not DirectoryExists(HomeDir) then
  38. If Not CreateDir(HomeDir) then
  39. HomeDir:=''
  40. else
  41. HomeDir:=HomeDir;
  42. end;
  43. Result:=IncludeTrailingPathDelimiter(HomeDir)+DefFileName;
  44. end;
  45. {$else}
  46. Function GetOptionFileName : String;
  47. begin
  48. Result:=ExtractFilePath(Paramstr(0))+DefFileName;
  49. end;
  50. {$endif}
  51. Procedure LoadOptions;
  52. begin
  53. With TInifile.Create(GetOptionFileName) do
  54. Try
  55. SkipEmptyNodes:=ReadBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
  56. ConfirmDelete:=ReadBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
  57. CreateBackup:=ReadBool(SecPrefs,KeyCreateBackup,CreateBackup);
  58. BackupExtension:=ReadString(SecPrefs,KeyBackupExtension,BackupExtension);
  59. DefaultExtension:=ReadString(SecPrefs,KeyDefaultExtension,DefaultExtension);
  60. finally
  61. Free;
  62. end;
  63. end;
  64. Procedure SaveOptions;
  65. begin
  66. With TInifile.Create(GetOptionFileName) do
  67. Try
  68. WriteBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
  69. WriteBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
  70. WriteBool(SecPrefs,KeyCreateBackup,CreateBackup);
  71. WriteString(SecPrefs,KeyBackupExtension,BackupExtension);
  72. WriteString(SecPrefs,KeyDefaultExtension,DefaultExtension);
  73. UpdateFile;
  74. finally
  75. Free;
  76. end;
  77. end;
  78. Initialization
  79. SkipEmptyNodes := True;
  80. ConfirmDelete := True;
  81. CreateBackup := True;
  82. BackupExtension := '.~xml';
  83. DefaultExtension := '.xml';
  84. MaxRecentUSed := 10;
  85. end.