Kill option to manually specify value of initial limit (DataLimitEnd) in preferences. Keeping the checkbox for autocalculating while rephrasing its caption. Now the limit number is set either automatically by GetCalculatedLimit() or not at all if the option is disabled. (Un-)checking the CheckboxLimit in Mainform now toggles this option permanently.

This commit is contained in:
Ansgar Becker
2008-03-24 00:11:38 +00:00
parent 747be5b4ef
commit 8226fae2be
5 changed files with 19 additions and 64 deletions

View File

@ -76,8 +76,6 @@ const
DEFAULT_DEFAULTCOLWIDTH = 100; DEFAULT_DEFAULTCOLWIDTH = 100;
REGNAME_DATALIMIT = 'DataLimit'; REGNAME_DATALIMIT = 'DataLimit';
DEFAULT_DATALIMIT = True; DEFAULT_DATALIMIT = True;
REGNAME_DATALIMITEND = 'DataLimitEnd';
DEFAULT_DATALIMITEND = 50;
REGNAME_REMEMBERFILTERS = 'RememberFilters'; REGNAME_REMEMBERFILTERS = 'RememberFilters';
DEFAULT_REMEMBERFILTERS = True; DEFAULT_REMEMBERFILTERS = True;
REGNAME_LOGTOFILE = 'LogToFile'; REGNAME_LOGTOFILE = 'LogToFile';

View File

@ -1493,8 +1493,7 @@ var
limit : Int64; limit : Int64;
ds : TDataSet; ds : TDataSet;
sl_query : TStringList; sl_query : TStringList;
manualLimit : boolean; DoAutoLimit : Boolean;
manualLimitEnd : integer;
DisplayedColumnsList : TStringList; DisplayedColumnsList : TStringList;
tmp : TDataSet; tmp : TDataSet;
begin begin
@ -1503,15 +1502,11 @@ begin
try try
// limit number of rows automatically if first time this table is shown // limit number of rows automatically if first time this table is shown
if not dataselected then begin if not dataselected then begin
manualLimit := Mainform.GetRegValue(REGNAME_DATALIMIT, DEFAULT_DATALIMIT); limit := -1;
manualLimitEnd := Mainform.GetRegValue(REGNAME_DATALIMITEND, DEFAULT_DATALIMITEND); DoAutoLimit := Mainform.GetRegValue(REGNAME_DATALIMIT, DEFAULT_DATALIMIT);
// limit number of rows fetched according to preferences // limit number of rows fetched according to preferences
if manualLimit then begin if DoAutoLimit then begin
// manual limit set in preferences // tick in preferences check box - auto-limit:
limit := manualLimitEnd;
end else begin
// no tick in preferences check box - auto-limit:
// limit number of rows fetched if more than ~ 5 MB of data // limit number of rows fetched if more than ~ 5 MB of data
limit := GetCalculatedLimit( SelectedTable ); limit := GetCalculatedLimit( SelectedTable );
end; end;

View File

@ -819,8 +819,15 @@ end;
procedure TMainForm.ButtonOKClick(Sender: TObject); procedure TMainForm.ButtonOKClick(Sender: TObject);
var
reg: TRegistry;
begin begin
// Set Filter // Set auto limit option after manual checking "Limit"
reg := TRegistry.Create;
if reg.OpenKey( REGPATH, true ) then begin
reg.WriteBool( REGNAME_DATALIMIT, CheckboxLimit.Checked );
end;
FreeAndNil(reg);
ChildWin.DBTree.SetFocus; ChildWin.DBTree.SetFocus;
ChildWin.viewdata(self); ChildWin.viewdata(self);
end; end;

View File

@ -416,13 +416,6 @@ object optionsform: Toptionsform
BorderWidth = 5 BorderWidth = 5
Caption = 'Data-Appearance' Caption = 'Data-Appearance'
ImageIndex = 4 ImageIndex = 4
object Label26: TLabel
Left = 257
Top = 40
Width = 36
Height = 13
Caption = 'records'
end
object Label19: TLabel object Label19: TLabel
Left = 8 Left = 8
Top = 68 Top = 68
@ -446,7 +439,7 @@ object optionsform: Toptionsform
Caption = Caption =
'Change this font in order to view special language characters in' + 'Change this font in order to view special language characters in' +
' data-grids:' ' data-grids:'
TabOrder = 6 TabOrder = 4
object Label21: TLabel object Label21: TLabel
Left = 20 Left = 20
Top = 24 Top = 24
@ -516,40 +509,20 @@ object optionsform: Toptionsform
object CheckBoxlimit: TCheckBox object CheckBoxlimit: TCheckBox
Left = 8 Left = 8
Top = 40 Top = 40
Width = 169 Width = 397
Height = 17 Height = 17
Caption = 'View data by default limited to' Anchors = [akLeft, akTop, akRight]
Caption = 'Automatically calculate data limit to avoid huge net loads'
Checked = True Checked = True
State = cbChecked State = cbChecked
TabOrder = 1 TabOrder = 1
OnClick = CheckBoxlimitClick
end
object EditLimit: TEdit
Left = 189
Top = 37
Width = 41
Height = 21
TabOrder = 2
Text = '50'
OnChange = Modified
end
object UpDownLimit: TUpDown
Left = 230
Top = 37
Width = 16
Height = 21
Associate = EditLimit
Max = 32767
Position = 50
TabOrder = 3
OnChanging = anyUpDownLimitChanging
end end
object editDefaultColWidth: TEdit object editDefaultColWidth: TEdit
Left = 188 Left = 188
Top = 65 Top = 65
Width = 42 Width = 42
Height = 21 Height = 21
TabOrder = 4 TabOrder = 2
Text = '0' Text = '0'
OnChange = Modified OnChange = Modified
end end
@ -560,7 +533,7 @@ object optionsform: Toptionsform
Height = 21 Height = 21
Associate = editDefaultColWidth Associate = editDefaultColWidth
Max = 1000 Max = 1000
TabOrder = 5 TabOrder = 3
OnChanging = anyUpDownLimitChanging OnChanging = anyUpDownLimitChanging
end end
object chkRememberFilters: TCheckBox object chkRememberFilters: TCheckBox

View File

@ -71,9 +71,6 @@ type
EditFontSize: TEdit; EditFontSize: TEdit;
UpDownFontSize: TUpDown; UpDownFontSize: TUpDown;
CheckBoxlimit: TCheckBox; CheckBoxlimit: TCheckBox;
EditLimit: TEdit;
UpDownLimit: TUpDown;
Label26: TLabel;
Label19: TLabel; Label19: TLabel;
Label20: TLabel; Label20: TLabel;
Label28: TLabel; Label28: TLabel;
@ -103,7 +100,6 @@ type
procedure FontsChange(Sender: TObject); procedure FontsChange(Sender: TObject);
procedure CallColorDialog(Sender: TObject); procedure CallColorDialog(Sender: TObject);
procedure DataFontsChange(Sender: TObject); procedure DataFontsChange(Sender: TObject);
procedure CheckBoxlimitClick(Sender: TObject);
procedure anyUpDownLimitChanging(Sender: TObject; procedure anyUpDownLimitChanging(Sender: TObject;
var AllowChange: Boolean); var AllowChange: Boolean);
procedure btnOpenLogFolderClick(Sender: TObject); procedure btnOpenLogFolderClick(Sender: TObject);
@ -180,7 +176,6 @@ begin
reg.WriteString(REGNAME_CSV_TERMINATOR, Edit3.Text); reg.WriteString(REGNAME_CSV_TERMINATOR, Edit3.Text);
reg.WriteInteger(REGNAME_DEFAULTCOLWIDTH, updownDefaultColWidth.Position); reg.WriteInteger(REGNAME_DEFAULTCOLWIDTH, updownDefaultColWidth.Position);
reg.WriteBool(REGNAME_DATALIMIT, CheckBoxLimit.Checked); reg.WriteBool(REGNAME_DATALIMIT, CheckBoxLimit.Checked);
reg.WriteInteger(REGNAME_DATALIMITEND, UpDownLimit.Position);
reg.WriteString(REGNAME_DATAFONTNAME, Panel8.Font.Name); reg.WriteString(REGNAME_DATAFONTNAME, Panel8.Font.Name);
reg.WriteInteger(REGNAME_DATAFONTSIZE, UpDownDataFontSize.Position); reg.WriteInteger(REGNAME_DATAFONTSIZE, UpDownDataFontSize.Position);
reg.WriteBool(REGNAME_REMEMBERFILTERS, chkRememberFilters.Checked); reg.WriteBool(REGNAME_REMEMBERFILTERS, chkRememberFilters.Checked);
@ -226,10 +221,6 @@ begin
cwin.prefConvertHTMLEntities := self.CheckBoxConvertHTMLEntities.Checked; cwin.prefConvertHTMLEntities := self.CheckBoxConvertHTMLEntities.Checked;
end; end;
// Set relevant properties in mainform
Mainform.CheckBoxLimit.Checked := CheckBoxLimit.Checked;
Mainform.UpDownLimitEnd.Position := UpDownLimit.Position;
// Settings have been applied, send a signal to the user // Settings have been applied, send a signal to the user
ButtonApply.Enabled := false; ButtonApply.Enabled := false;
@ -270,8 +261,6 @@ begin
CheckBoxConvertHTMLEntities.Checked := Mainform.GetRegValue(REGNAME_CONVERTHTMLENTITIES, DEFAULT_CONVERTHTMLENTITIES); CheckBoxConvertHTMLEntities.Checked := Mainform.GetRegValue(REGNAME_CONVERTHTMLENTITIES, DEFAULT_CONVERTHTMLENTITIES);
CheckBoxRestoreLastUsedDB.Checked := Mainform.GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB); CheckBoxRestoreLastUsedDB.Checked := Mainform.GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB);
CheckBoxLimit.Checked := Mainform.GetRegValue(REGNAME_DATALIMIT, DEFAULT_DATALIMIT); CheckBoxLimit.Checked := Mainform.GetRegValue(REGNAME_DATALIMIT, DEFAULT_DATALIMIT);
UpDownLimit.Position := Mainform.GetRegValue(REGNAME_DATALIMITEND, DEFAULT_DATALIMITEND);
CheckBoxLimit.OnClick(self);
updownLogSQLNum.Position := Mainform.GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM); updownLogSQLNum.Position := Mainform.GetRegValue(REGNAME_LOGSQLNUM, DEFAULT_LOGSQLNUM);
updownLogSnip.Position := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH); updownLogSnip.Position := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
chkUpdatecheck.Checked := Mainform.GetRegValue(REGNAME_DO_UPDATECHECK, DEFAULT_DO_UPDATECHECK); chkUpdatecheck.Checked := Mainform.GetRegValue(REGNAME_DO_UPDATECHECK, DEFAULT_DO_UPDATECHECK);
@ -365,13 +354,6 @@ begin
Modified(self); Modified(self);
end; end;
procedure Toptionsform.CheckBoxlimitClick(Sender: TObject);
begin
UpDownLimit.Enabled := CheckBoxLimit.Checked;
EditLimit.Enabled := CheckBoxLimit.Checked;
Modified(sender);
end;
procedure Toptionsform.anyUpDownLimitChanging(Sender: TObject; procedure Toptionsform.anyUpDownLimitChanging(Sender: TObject;
var AllowChange: Boolean); var AllowChange: Boolean);
begin begin