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;
REGNAME_DATALIMIT = 'DataLimit';
DEFAULT_DATALIMIT = True;
REGNAME_DATALIMITEND = 'DataLimitEnd';
DEFAULT_DATALIMITEND = 50;
REGNAME_REMEMBERFILTERS = 'RememberFilters';
DEFAULT_REMEMBERFILTERS = True;
REGNAME_LOGTOFILE = 'LogToFile';

View File

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

View File

@ -819,8 +819,15 @@ end;
procedure TMainForm.ButtonOKClick(Sender: TObject);
var
reg: TRegistry;
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.viewdata(self);
end;

View File

@ -416,13 +416,6 @@ object optionsform: Toptionsform
BorderWidth = 5
Caption = 'Data-Appearance'
ImageIndex = 4
object Label26: TLabel
Left = 257
Top = 40
Width = 36
Height = 13
Caption = 'records'
end
object Label19: TLabel
Left = 8
Top = 68
@ -446,7 +439,7 @@ object optionsform: Toptionsform
Caption =
'Change this font in order to view special language characters in' +
' data-grids:'
TabOrder = 6
TabOrder = 4
object Label21: TLabel
Left = 20
Top = 24
@ -516,40 +509,20 @@ object optionsform: Toptionsform
object CheckBoxlimit: TCheckBox
Left = 8
Top = 40
Width = 169
Width = 397
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
State = cbChecked
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
object editDefaultColWidth: TEdit
Left = 188
Top = 65
Width = 42
Height = 21
TabOrder = 4
TabOrder = 2
Text = '0'
OnChange = Modified
end
@ -560,7 +533,7 @@ object optionsform: Toptionsform
Height = 21
Associate = editDefaultColWidth
Max = 1000
TabOrder = 5
TabOrder = 3
OnChanging = anyUpDownLimitChanging
end
object chkRememberFilters: TCheckBox

View File

@ -71,9 +71,6 @@ type
EditFontSize: TEdit;
UpDownFontSize: TUpDown;
CheckBoxlimit: TCheckBox;
EditLimit: TEdit;
UpDownLimit: TUpDown;
Label26: TLabel;
Label19: TLabel;
Label20: TLabel;
Label28: TLabel;
@ -103,7 +100,6 @@ type
procedure FontsChange(Sender: TObject);
procedure CallColorDialog(Sender: TObject);
procedure DataFontsChange(Sender: TObject);
procedure CheckBoxlimitClick(Sender: TObject);
procedure anyUpDownLimitChanging(Sender: TObject;
var AllowChange: Boolean);
procedure btnOpenLogFolderClick(Sender: TObject);
@ -180,7 +176,6 @@ begin
reg.WriteString(REGNAME_CSV_TERMINATOR, Edit3.Text);
reg.WriteInteger(REGNAME_DEFAULTCOLWIDTH, updownDefaultColWidth.Position);
reg.WriteBool(REGNAME_DATALIMIT, CheckBoxLimit.Checked);
reg.WriteInteger(REGNAME_DATALIMITEND, UpDownLimit.Position);
reg.WriteString(REGNAME_DATAFONTNAME, Panel8.Font.Name);
reg.WriteInteger(REGNAME_DATAFONTSIZE, UpDownDataFontSize.Position);
reg.WriteBool(REGNAME_REMEMBERFILTERS, chkRememberFilters.Checked);
@ -226,10 +221,6 @@ begin
cwin.prefConvertHTMLEntities := self.CheckBoxConvertHTMLEntities.Checked;
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
ButtonApply.Enabled := false;
@ -270,8 +261,6 @@ begin
CheckBoxConvertHTMLEntities.Checked := Mainform.GetRegValue(REGNAME_CONVERTHTMLENTITIES, DEFAULT_CONVERTHTMLENTITIES);
CheckBoxRestoreLastUsedDB.Checked := Mainform.GetRegValue(REGNAME_RESTORELASTUSEDDB, DEFAULT_RESTORELASTUSEDDB);
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);
updownLogSnip.Position := Mainform.GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);
chkUpdatecheck.Checked := Mainform.GetRegValue(REGNAME_DO_UPDATECHECK, DEFAULT_DO_UPDATECHECK);
@ -365,13 +354,6 @@ begin
Modified(self);
end;
procedure Toptionsform.CheckBoxlimitClick(Sender: TObject);
begin
UpDownLimit.Enabled := CheckBoxLimit.Checked;
EditLimit.Enabled := CheckBoxLimit.Checked;
Modified(sender);
end;
procedure Toptionsform.anyUpDownLimitChanging(Sender: TObject;
var AllowChange: Boolean);
begin