diff --git a/source/main.dfm b/source/main.dfm index b05e45f7..09347d0f 100644 --- a/source/main.dfm +++ b/source/main.dfm @@ -6729,4 +6729,11 @@ object MainForm: TMainForm Left = 40 Top = 269 end + object TimerFilterDBTree: TTimer + Enabled = False + Interval = 500 + OnTimer = TimerFilterDBTreeTimer + Left = 136 + Top = 269 + end end diff --git a/source/main.pas b/source/main.pas index 681872f5..8a65d774 100644 --- a/source/main.pas +++ b/source/main.pas @@ -449,6 +449,7 @@ type actFilterPanel: TAction; actFindInVT1: TMenuItem; TimerFilterVT: TTimer; + TimerFilterDBTree: TTimer; procedure refreshMonitorConfig; procedure loadWindowConfig; procedure saveWindowConfig; @@ -733,6 +734,7 @@ type procedure comboOnlyDBsKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure actFilterPanelExecute(Sender: TObject); procedure TimerFilterVTTimer(Sender: TObject); + procedure TimerFilterDBTreeTimer(Sender: TObject); private ReachedEOT : Boolean; FDelimiter: String; @@ -9573,7 +9575,16 @@ end; procedure TMainForm.comboOnlyDBsChange(Sender: TObject); begin - // Immediately apply database filter + // Reset editing timer + TimerFilterDBTree.Enabled := False; + TimerFilterDBTree.Enabled := True; +end; + + +procedure TMainForm.TimerFilterDBTreeTimer(Sender: TObject); +begin + // Apply database filter as the user has finished typing + TimerFilterDBTree.Enabled := False; RefreshTree(False); end;