mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-08 12:39:22 +02:00
126 lines
2.3 KiB
ObjectPascal
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.
|
|
|