File: schemaeditorconf.pas

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (125 lines) | stat: -rw-r--r-- 2,378 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
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.