From b7b652da671a8146ab5a22b0ba5cd396d152ac6c Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Wed, 10 Oct 2007 18:17:35 +0000 Subject: [PATCH] Fix adjusting linenumbers in SQL log when user changed the max linecount in preferences. --- source/childwin.pas | 29 ++++++++++++++++++++++------- source/options.pas | 3 +-- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/source/childwin.pas b/source/childwin.pas index 9321e5cd..dad82a6d 100644 --- a/source/childwin.pas +++ b/source/childwin.pas @@ -612,6 +612,7 @@ type function GetVTreeDataArray( VT: TBaseVirtualTree ): PVTreeDataArray; procedure ActivateFileLogging; procedure DeactivateFileLogging; + procedure TrimSQLLog; end; type @@ -1208,13 +1209,7 @@ begin SynMemoSQLLog.Lines.Add( String(msg) ); - // Delete first line(s) - while SynMemoSQLLog.Lines.Count > prefLogsqlnum do - begin - SynMemoSQLLog.Lines.Delete(0); - // Increase first displayed number in gutter so it doesn't lie about the log entries - SynMemoSQLLog.Gutter.LineNumberStart := SynMemoSQLLog.Gutter.LineNumberStart + 1; - end; + TrimSQLLog; // Scroll to last line and repaint SynMemoSQLLog.GotoLineAndCenter( SynMemoSQLLog.Lines.Count ); @@ -1231,6 +1226,26 @@ begin end; +{** + Delete first line(s) in SQL log and adjust LineNumberStart in gutter + Called by LogSQL and preferences dialog +} +procedure TMDIChild.TrimSQLLog; +var + i : Integer; +begin + i := 0; + while SynMemoSQLLog.Lines.Count > prefLogsqlnum do + begin + SynMemoSQLLog.Lines.Delete(0); + inc(i); + end; + // Increase first displayed number in gutter so it doesn't lie about the log entries + if i > 0 then + SynMemoSQLLog.Gutter.LineNumberStart := SynMemoSQLLog.Gutter.LineNumberStart + i; +end; + + procedure TMDIChild.ReadDatabasesAndTables(Sender: TObject); var tnode : TTreeNode; diff --git a/source/options.pas b/source/options.pas index 88f515cb..1f5762ef 100644 --- a/source/options.pas +++ b/source/options.pas @@ -205,8 +205,6 @@ begin cwin.SynSQLSyn1.CommentAttri.Foreground := self.pnlComments.Color; cwin.SynSQLSyn1.TablenameAttri.Foreground := self.pnlTablenames.Color; cwin.SynMemoQuery.ActiveLineColor := self.pnlActiveLine.Color; - while cwin.SynMemoSQLLog.Lines.Count > updownLogSQLNum.Position do - cwin.SynMemoSQLLog.Lines.Delete(0); cwin.gridData.Font := self.Panel8.font; cwin.gridQuery.Font := self.Panel8.font; cwin.DBMemo1.Font := self.Panel8.font; @@ -216,6 +214,7 @@ begin cwin.gridQuery.Options := cwin.gridQuery.Options + [dgAlwaysShowEditor]; cwin.prefRememberFilters := chkRememberFilters.Checked; cwin.prefLogsqlnum := self.updownLogSQLNum.Position; + cwin.TrimSQLLog; if chkLogToFile.Checked then cwin.ActivateFileLogging else if cwin.prefLogToFile then