mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 03:48:07 +02:00
166 lines
5.2 KiB
ObjectPascal
166 lines
5.2 KiB
ObjectPascal
{
|
|
***************************************************************************
|
|
* *
|
|
* This source is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This code is distributed in the hope that it will be useful, but *
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
|
|
* General Public License for more details. *
|
|
* *
|
|
* A copy of the GNU General Public License is available on the World *
|
|
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
|
|
* obtain it by writing to the Free Software Foundation, *
|
|
* Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. *
|
|
* *
|
|
***************************************************************************
|
|
|
|
Author: Michael Van Canneyt
|
|
}
|
|
unit LazDEOpts;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
Interface
|
|
|
|
uses SysUtils, IniFiles, LazFileUtils, LazUTF8;
|
|
|
|
Var
|
|
SkipEmptyNodes : Boolean;
|
|
ConfirmDelete : Boolean;
|
|
CreateBackup : Boolean;
|
|
ShowHelpHints : Boolean;
|
|
StartMaximized : Boolean;
|
|
ReopenLast : Boolean;
|
|
MaxRecentUsed : Integer;
|
|
BackupExtension : String;
|
|
DefaultExtension : String;
|
|
CmdMakeSkel : String;
|
|
cmdFPDoc : String;
|
|
|
|
Const
|
|
ImgIndxNew = 0;
|
|
ImgIndxEdited = 1;
|
|
|
|
Procedure LoadOptions;
|
|
Procedure SaveOptions;
|
|
Function GetOptionFileName : String;
|
|
|
|
Implementation
|
|
uses translations;
|
|
|
|
const
|
|
DefFilename = 'fpde.ini';
|
|
SecPrefs = 'Preferences';
|
|
KeySkipEmptyNodes = 'SkipEmptyNodes';
|
|
KeyConfirmDelete = 'ConfirmDelete';
|
|
KeyCreateBackup = 'CreateBackup';
|
|
KeyBackupExtension = 'BackupExtension';
|
|
KeyDefaultExtension = 'DefaultExtension';
|
|
//KeyMaxRecentUsed = 'MaxMRUitems';
|
|
KeyCmdMakeSkel = 'makeskel';
|
|
KeyCmdFpdoc = 'fpdoc';
|
|
KeyShowHints = 'ShowHints';
|
|
|
|
{$ifndef MSWindows}
|
|
Function GetOptionFileName : String;
|
|
|
|
Const
|
|
fpdedir = '.fpde';
|
|
|
|
Var
|
|
HomeDir : String;
|
|
|
|
begin
|
|
HomeDir:=GetEnvironmentVariableUTF8('HOME');
|
|
If (HomeDir<>'') then
|
|
begin
|
|
HomeDir:=IncludeTrailingPathDelimiter(HomeDir)+fpdedir;
|
|
If not DirectoryExistsUTF8(HomeDir) then
|
|
If Not CreateDirUTF8(HomeDir) then
|
|
HomeDir:=''
|
|
else
|
|
HomeDir:=HomeDir;
|
|
end;
|
|
Result:=IncludeTrailingPathDelimiter(HomeDir)+DefFileName;
|
|
end;
|
|
|
|
{$else}
|
|
|
|
Function GetOptionFileName : String;
|
|
|
|
begin
|
|
Result:=ExtractFilePath(ParamStrUTF8(0))+DefFileName;
|
|
end;
|
|
{$endif}
|
|
|
|
Procedure LoadOptions;
|
|
|
|
begin
|
|
With TInifile.Create(UTF8ToSys(GetOptionFileName)) do
|
|
Try
|
|
SkipEmptyNodes:=ReadBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
|
|
ConfirmDelete:=ReadBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
|
|
CreateBackup:=ReadBool(SecPrefs,KeyCreateBackup,CreateBackup);
|
|
ShowHelpHints:=ReadBool(SecPrefs,KeyShowHints,ShowHelpHints);
|
|
StartMaximized := ReadBool(SecPrefs, 'StartMaximized', StartMaximized);
|
|
ReopenLast := ReadBool(SecPrefs, 'ReopenLast', ReopenLast);
|
|
BackupExtension:=ReadString(SecPrefs,KeyBackupExtension,BackupExtension);
|
|
DefaultExtension:=ReadString(SecPrefs,KeyDefaultExtension,DefaultExtension);
|
|
CmdMakeSkel:=ReadString(SecPrefs,KeyCmdMakeSkel,cmdMakeSkel);
|
|
Cmdfpdoc:=ReadString(SecPrefs,KeyCmdfpdoc,cmdfpdoc);
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
Procedure SaveOptions;
|
|
|
|
begin
|
|
With TInifile.Create(UTF8ToSys(GetOptionFileName)) do
|
|
Try
|
|
WriteBool(SecPrefs,KeySkipEmptyNodes,SkipEmptyNodes);
|
|
WriteBool(SecPrefs,KeyConfirmDelete,ConfirmDelete);
|
|
WriteBool(SecPrefs,KeyCreateBackup,CreateBackup);
|
|
WriteBool(SecPrefs,KeyShowHints,ShowHelpHints);
|
|
WriteBool(SecPrefs, 'StartMaximized', StartMaximized);
|
|
WriteBool(SecPrefs, 'ReopenLast', ReopenLast);
|
|
WriteString(SecPrefs,KeyBackupExtension,BackupExtension);
|
|
WriteString(SecPrefs,KeyDefaultExtension,DefaultExtension);
|
|
WriteString(SecPrefs,KeyCmdMakeSkel,cmdMakeSkel);
|
|
WriteString(SecPrefs,KeyCmdfpdoc,cmdfpdoc);
|
|
UpdateFile;
|
|
finally
|
|
Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TranslateResStrings;
|
|
var
|
|
S: String;
|
|
LangID: TLanguageID;
|
|
begin
|
|
LangID := GetLanguageID;
|
|
S:=AppendPathDelim(AppendPathDelim(ExtractFileDir(ParamStr(0))) + 'languages');
|
|
TranslateUnitResourceStrings('LazDEMsg', S+'lazde.%s.po', LangID.LanguageID, LangID.LanguageCode);
|
|
end;
|
|
|
|
Initialization
|
|
SkipEmptyNodes := True;
|
|
ConfirmDelete := True;
|
|
CreateBackup := True;
|
|
StartMaximized := true;
|
|
ReopenLast := true;
|
|
BackupExtension := '.~xml';
|
|
DefaultExtension := '.xml';
|
|
MaxRecentUSed := 10;
|
|
CmdMakeSkel := 'makeskel';
|
|
cmdfpdoc := 'fpdoc';
|
|
ShowHelpHints := true;
|
|
|
|
TranslateResStrings;
|
|
end.
|