lazarus/components/sqldbrest/design/schemaeditorconf.pas
Michaël Van Canneyt a22712a593 * Fix memleak
2024-09-23 21:21:17 +02:00

126 lines
2.3 KiB
ObjectPascal

unit schemaeditorconf;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, inifiles;
Const
DefaultDisableMySQLVersionCheck = False;
Type
{ TSchemaSettings }
TSchemaSettings = class(TPersistent)
private
FCurrentFile: String;
FDisableMySQLVersionCheck: Boolean;
Public
Constructor Create; virtual;
Procedure Reset; virtual;
Class Function DefaultFileName : String;
Procedure LoadFromIni(aIni : TCustomIniFile); virtual;
Procedure SaveToIni(aIni : TCustomIniFile); virtual;
Procedure LoadFromFile(const aFileName : String);
Procedure SaveToFile(const aFileName : String);
Property CurrentFile : String Read FCurrentFile;
Published
Property DisableMySQLVersionCheck : Boolean Read FDisableMySQLVersionCheck Write FDisableMySQLVersionCheck;
end;
Function SchemaSettings : TSchemaSettings;
implementation
const
SConnections = 'SchemaConnections';
KeyDisableMySQLVersionCheck = 'DisableMySQLVersionCheck';
var
_settings : TSchemaSettings;
Function SchemaSettings : TSchemaSettings;
begin
if not assigned(_settings) then
_settings:=TSchemaSettings.Create;
Result:=_settings;
end;
{ TSchemaSettings }
constructor TSchemaSettings.Create;
begin
Reset;
end;
procedure TSchemaSettings.Reset;
begin
DisableMySQLVersionCheck:=DefaultDisableMySQLVersionCheck;
end;
class function TSchemaSettings.DefaultFileName: String;
begin
Result:=GetAppConfigFile(False);
end;
procedure TSchemaSettings.LoadFromIni(aIni: TCustomIniFile);
begin
With aIni do
begin
DisableMySQLVersionCheck:=ReadBool(SConnections,KeyDisableMySQLVersionCheck,DisableMySQLVersionCheck);
end;
end;
procedure TSchemaSettings.SaveToIni(aIni: TCustomIniFile);
begin
With aIni do
begin
WriteBool(SConnections,KeyDisableMySQLVersionCheck,DisableMySQLVersionCheck);
end;
end;
procedure TSchemaSettings.LoadFromFile(const aFileName: String);
var
Ini : TMemIniFile;
begin
FCurrentFile:=AFileName;
Ini:=TMemIniFile.Create(aFileName);
try
LoadFromIni(Ini);
finally
Ini.Free;
end;
end;
procedure TSchemaSettings.SaveToFile(const aFileName: String);
var
Ini : TMemIniFile;
begin
FCurrentFile:=AFileName;
Ini:=TMemIniFile.Create(aFileName);
try
SaveToIni(Ini);
Ini.UpdateFile;
finally
Ini.Free;
end;
end;
initialization
finalization
_settings.Free;
end.