[lazarus] Find and replace history
Jarto Tarpio
jarto at starsoft.fi
Thu Dec 13 05:04:17 EST 2001
I've just finished Find&Replace history. It works but unfortunately
it's not really user friendly thanks to some bugs in TComboBox.
I changed the two TEdit-fields to TComboBox:s. Their Items-lists
are filled with values from TEnvironmentOptions when the
FindReplaceDlg is created. (At Lazarus startup)
When I open Find for the first time, the uniteditor does a
FindReplaceDlg.FindText := whatever but this doesn't change
anything in the ComboBox. It's showing the last string in the Items-
list. On the following times the text is updated correctly but the
TComboBox never gets focus. Not even if a
TextToFindEdit.SetFocus is added to
TLazFindReplaceDialog.SetFindText.
In other words: You have to click on the find-line Every Single Time
you want to search for something. Needless to say that most of us
are used to ctrl-F + happy typing + enter. So think twice before
adding these diffs before TComboBox is fixed.
/jarto
diff -a -b environmentopts.pp orig/environmentopts.pp
93,97d92
< // Find- and replace-history
< FFindHistory: TStringList;
< FReplaceHistory: TStringList;
< FMaxFindHistory: Integer;
<
170,176d164
< // Find- and replace-history
< property FindHistory: TStringList read FFindHistory write
FFindHistory;
< property ReplaceHistory: TStringList read FReplaceHistory
write FReplaceHistory;
< property MaxFindHistory: Integer read FMaxFindHistory write
FMaxFindHistory;
< procedure AddToFindHistory(const AFindStr: string);
< procedure AddToReplaceHistory(const AReplaceStr: String);
<
402,405d389
< FFindHistory:=TStringList.Create;
< FReplaceHistory:=TStringList.Create;
< FMaxFindHistory:=10;
<
591,595d574
< FMaxFindHistory:=XMLConfig.GetValue(
< 'EnvironmentOptions/Recent/Find/Max',FMaxFindHistory);
<
LoadRecentList(FFindHistory,'EnvironmentOptions/Recent/Find/');
<
LoadRecentList(FReplaceHistory,'EnvironmentOptions/Recent/Repl
ace/');
<
739,744d717
< // Find-history
< XMLConfig.SetValue(
< 'EnvironmentOptions/Recent/Find/Max',FMaxFindHistory);
<
SaveRecentList(FFindHistory,'EnvironmentOptions/Recent/Find/');
<
SaveRecentList(FReplaceHistory,'EnvironmentOptions/Recent/Repl
ace/');
<
823,832d795
< procedure TEnvironmentOptions.AddToFindHistory(const
AFindStr: string);
< begin
< AddToRecentList(AFindStr,FFindHistory,FMaxFindHistory);
< end;
<
< procedure TEnvironmentOptions.AddToReplaceHistory(const
AReplaceStr: String);
< begin
<
AddToRecentList(AReplaceStr,FReplaceHistory,FMaxFindHistory);
< end;
<
diff -b findreplacedialog.pp orig/findreplacedialog.pp
39,40d38
< procedure ShowHistory;
< procedure UpdateHistory;
44,45c42,43
< TextToFindEdit:TComboBox;
< ReplaceTextEdit:TComboBox;
---
> TextToFindEdit:TEdit;
> ReplaceTextEdit:TEdit;
74d71
< uses EnvironmentOpts;
110c107
< TextToFindEdit:=TComboBox.Create(Self);
---
> TextToFindEdit:=TEdit.Create(Self);
123c120
< ReplaceTextEdit:=TComboBox.Create(Self);
---
> ReplaceTextEdit:=Tedit.Create(Self);
296,297d292
<
< ShowHistory;
319d313
< UpdateHistory;
386d379
< TextToFindEdit.SetFocus;
399,416d391
< procedure TLazFindReplaceDialog.ShowHistory;
< begin
< TextToFindEdit.Items.Clear;
<
TextToFindEdit.Items.AddStrings(EnvironmentOptions.FindHistory);
< ReplaceTextEdit.Items.Clear;
<
ReplaceTextEdit.Items.AddStrings(EnvironmentOptions.ReplaceHis
tory);
< end;
<
< procedure TLazFindReplaceDialog.UpdateHistory;
< begin
< with EnvironmentOptions do begin
< AddToFindHistory(FindText);
< if ReplaceTextEdit.Enabled then
AddToReplaceHistory(ReplaceText);
< Save(false);
< end;
< ShowHistory;
< end;
<
More information about the Lazarus
mailing list