From a92c3ed48958f4002325e4bf9d2cc8dba24b76b0 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 19 May 2009 23:02:07 +0000 Subject: [PATCH] Fix issue #1089: Pressing Ins in filter textarea inserts new data line --- source/main.dfm | 2 ++ source/main.pas | 32 +++++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/source/main.dfm b/source/main.dfm index fa4bddda..80357c16 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -1143,6 +1143,8 @@ object MainForm: TMainForm OnEditCancelled = DataGridEditCancelled OnEdited = DataGridEdited OnEditing = DataGridEditing + OnEnter = DataGridEnter + OnExit = DataGridExit OnFocusChanging = DataGridFocusChanging OnGetText = GridGetText OnPaintText = GridPaintText diff --git a/source/main.pas b/source/main.pas index 1549cb27..8bb8d04b 100644 --- a/source/main.pas +++ b/source/main.pas @@ -679,6 +679,8 @@ type procedure DBtreeExpanded(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure actEditObjectExecute(Sender: TObject); procedure actViewDataExecute(Sender: TObject); + procedure DataGridEnter(Sender: TObject); + procedure DataGridExit(Sender: TObject); private ReachedEOT : Boolean; FDelimiter: String; @@ -4049,12 +4051,12 @@ end; procedure TMainForm.ValidateControls( FrmIsFocussed: Boolean = true ); var DBObjectSelected, - inDbTab, inDataTab, inQueryTab, inDataOrQueryTab, inDataOrQueryTabNotEmpty, + inDbTab, inDataGrid, inQueryTab, inDataOrQueryTab, inDataOrQueryTabNotEmpty, dummy: Boolean; SelectedNodes: TNodeArray; begin inDbTab := FrmIsFocussed and (PageControlMain.ActivePage = tabDatabase); - inDataTab := FrmIsFocussed and (PageControlMain.ActivePage = tabData); + inDataGrid := FrmIsFocussed and (ActiveControl = DataGrid); inDataOrQueryTab := FrmIsFocussed and ((PageControlMain.ActivePage = tabData) or (PageControlMain.ActivePage = tabQuery)); inDataOrQueryTabNotEmpty := inDataOrQueryTab and (ActiveGrid.RootNodeCount > 0); inQueryTab := FrmIsFocussed and (PageControlMain.ActivePage = tabQuery); @@ -4085,12 +4087,12 @@ begin // Data tab - if query results are made editable, these will need // to be changed to look at which tab is focused. - actDataInsert.Enabled := inDataTab; - actDataDelete.Enabled := inDataTab and (DataGrid.SelectedCount > 0); - actDataFirst.Enabled := inDataTab; - actDataLast.Enabled := inDataTab; - actDataPostChanges.Enabled := inDataTab and DataGridHasChanges; - actDataCancelChanges.Enabled := inDataTab and DataGridHasChanges; + actDataInsert.Enabled := inDataGrid; + actDataDelete.Enabled := inDataGrid and (DataGrid.SelectedCount > 0); + actDataFirst.Enabled := inDataGrid; + actDataLast.Enabled := inDataGrid; + actDataPostChanges.Enabled := inDataGrid and DataGridHasChanges; + actDataCancelChanges.Enabled := inDataGrid and DataGridHasChanges; // Activate export-options if we're on Data- or Query-tab actCopyAsCSV.Enabled := inDataOrQueryTabNotEmpty; @@ -4099,7 +4101,7 @@ begin actCopyAsSQL.Enabled := inDataOrQueryTabNotEmpty; actExportData.Enabled := inDataOrQueryTabNotEmpty; actHTMLView.Enabled := inDataOrQueryTabNotEmpty and Assigned(ActiveGrid.FocusedNode); - setNull1.Enabled := inDataTab and Assigned(DataGrid.FocusedNode); + setNull1.Enabled := inDataGrid and Assigned(DataGrid.FocusedNode); // Query tab actLoadSQL.Enabled := FrmIsFocussed; @@ -4143,6 +4145,18 @@ begin end; +procedure TMainForm.DataGridEnter(Sender: TObject); +begin + ValidateControls(True); +end; + + +procedure TMainForm.DataGridExit(Sender: TObject); +begin + ValidateControls(True); +end; + + procedure TMainForm.CheckUptime; begin ServerUptime := MakeInt(GetVar('SHOW STATUS LIKE ''Uptime''', 1));