From 8226fae2bef1df16b80f55bb18883c6b16bb1ab7 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Mon, 24 Mar 2008 00:11:38 +0000 Subject: [PATCH] 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. --- components/heidisql/include/const.inc | 2 -- source/childwin.pas | 15 ++++------- source/main.pas | 9 ++++++- source/options.dfm | 39 +++++---------------------- source/options.pas | 18 ------------- 5 files changed, 19 insertions(+), 64 deletions(-) diff --git a/components/heidisql/include/const.inc b/components/heidisql/include/const.inc index 3e64d7e8..3ee4f5f4 100644 --- a/components/heidisql/include/const.inc +++ b/components/heidisql/include/const.inc @@ -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'; diff --git a/source/childwin.pas b/source/childwin.pas index 4ddb4314..6d075332 100644 --- a/source/childwin.pas +++ b/source/childwin.pas @@ -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; diff --git a/source/main.pas b/source/main.pas index f9370171..51e622a4 100644 --- a/source/main.pas +++ b/source/main.pas @@ -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; diff --git a/source/options.dfm b/source/options.dfm index 1211f4ce..fc024da6 100644 --- a/source/options.dfm +++ b/source/options.dfm @@ -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 diff --git a/source/options.pas b/source/options.pas index 18b0a36b..fce9f444 100644 --- a/source/options.pas +++ b/source/options.pas @@ -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