Clean registry from unwanted WHERE clauses if "Remember WHERE filters" was unchecked. Avoids confusion with unwanted filters when that option was switched OFF and then ON again.

This commit is contained in:
Ansgar Becker
2008-07-14 21:46:38 +00:00
parent fe5479d56f
commit 764f444ebf

View File

@@ -136,6 +136,8 @@ procedure Toptionsform.Apply(Sender: TObject);
var
cwin : TMDIChild;
reg : TRegistry;
ServerKeys, ValueNames: TStringList;
i, j: Integer;
begin
Screen.Cursor := crHourGlass;
@@ -172,6 +174,24 @@ begin
reg.WriteInteger(REGNAME_UPDATECHECK_INTERVAL, updownUpdatecheckInterval.Position);
reg.WriteBool(REGNAME_PREFER_SHOWTABLES, chkPreferShowTables.Checked);
// Clean registry from unwanted WHERE clauses if "Remember WHERE filters" was unchecked
if not chkRememberFilters.Checked then begin
reg.OpenKey(REGKEY_SESSIONS, True);
ServerKeys := TStringList.Create;
reg.GetKeyNames(ServerKeys);
for i := 0 to ServerKeys.Count - 1 do begin
reg.OpenKey(REGPATH + REGKEY_SESSIONS + ServerKeys[i], True);
ValueNames := TStringList.Create;
reg.GetValueNames(ValueNames);
for j := 0 to ValueNames.Count - 1 do begin
if Pos(REGPREFIX_WHERECLAUSE, ValueNames[j]) = 1 then
reg.DeleteValue(ValueNames[j]);
end;
ValueNames.Free;
end;
ServerKeys.Free;
end;
// Close registry key
reg.CloseKey;
reg.Free;