mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 13:49:32 +02:00
Find In Files dialog: options are now saved
git-svn-id: trunk@5383 -
This commit is contained in:
parent
857fa012a6
commit
bab39ff4ab
@ -24,14 +24,8 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LCLIntf, Controls, StdCtrls, Forms, Buttons, ExtCtrls,
|
||||
LResources, FileCtrl, LazarusIDEStrConsts, Dialogs, SynEditTypes;
|
||||
|
||||
type
|
||||
TLazFindInFileSearchOption = (fifMatchCase, fifWholeWord, fifRegExpr,
|
||||
fifSearchProject, fifSearchOpen, fifSearchFiles,
|
||||
fifIncludeSubDirs);
|
||||
|
||||
TLazFindInFileSearchOptions = set of TLazFindInFileSearchOption;
|
||||
LResources, FileCtrl, LazarusIDEStrConsts, Dialogs, SynEditTypes,
|
||||
InputHistory;
|
||||
|
||||
type
|
||||
TLazFindInFilesDialog = class(TForm)
|
||||
@ -66,8 +60,8 @@ type
|
||||
procedure SetFindText(const NewFindText: string);
|
||||
public
|
||||
constructor Create(AOwner:TComponent); override;
|
||||
property Options:TLazFindInFileSearchOptions read GetOptions
|
||||
write SetOptions;
|
||||
property Options: TLazFindInFileSearchOptions read GetOptions
|
||||
write SetOptions;
|
||||
property FindText: string read GetFindText write SetFindText;
|
||||
property SynSearchOptions: TSynSearchOptions read GetSynOptions
|
||||
write SetSynOptions;
|
||||
@ -358,14 +352,14 @@ end;
|
||||
procedure TLazFindInFilesDialog.WhereRadioGroupClick(Sender: TObject);
|
||||
begin
|
||||
DirectoryOptionsGroupBox.Enabled:= (WhereRadioGroup.ItemIndex = 2)
|
||||
end;//WhereRaidoGroupClick
|
||||
end;
|
||||
|
||||
procedure TLazFindInFilesDialog.DirectoryBrowseClick(Sender: TObject);
|
||||
begin
|
||||
SelectDirectoryDialog.InitialDir:= GetCurrentDir;
|
||||
if SelectDirectoryDialog.Execute then
|
||||
DirectoryComboBox.Text:= SelectDirectoryDialog.FileName;
|
||||
end;//DirectoryBrowseClick
|
||||
end;
|
||||
|
||||
procedure TLazFindInFilesDialog.SetOptions(
|
||||
NewOptions: TLazFindInFileSearchOptions);
|
||||
@ -373,11 +367,12 @@ begin
|
||||
CaseSensitiveCheckBox.Checked:=fifMatchCase in NewOptions;
|
||||
WholeWordsOnlyCheckBox.Checked:=fifWholeWord in NewOptions;
|
||||
RegularExpressionsCheckBox.Checked:=fifRegExpr in NewOptions;
|
||||
IncludeSubDirsCheckBox.Checked:= fifIncludeSubDirs in NewOptions;
|
||||
DirectoryOptionsGroupBox.Enabled:=fifSearchDirectories in NewOptions;
|
||||
IncludeSubDirsCheckBox.Checked:=fifIncludeSubDirs in NewOptions;
|
||||
if fifSearchProject in NewOptions then WhereRadioGroup.ItemIndex:= 0;
|
||||
if fifSearchOpen in NewOptions then WhereRadioGroup.ItemIndex:= 1;
|
||||
if fifSearchFiles in NewOptions then WhereRadioGroup.ItemIndex:= 2;
|
||||
end;//SetOptions
|
||||
if fifSearchDirectories in NewOptions then WhereRadioGroup.ItemIndex:= 2;
|
||||
end;
|
||||
|
||||
function TLazFindInFilesDialog.GetOptions: TLazFindInFileSearchOptions;
|
||||
begin
|
||||
@ -390,9 +385,9 @@ begin
|
||||
case WhereRadioGroup.ItemIndex of
|
||||
0: Include(Result,fifSearchProject);
|
||||
1: Include(Result,fifSearchOpen);
|
||||
2: Include(Result,fifSearchFiles);
|
||||
2: Include(Result,fifSearchDirectories);
|
||||
end;//case
|
||||
end;//GetOptions
|
||||
end;
|
||||
|
||||
function TLazFindInFilesDialog.GetSynOptions: TSynSearchOptions;
|
||||
begin
|
||||
|
@ -37,7 +37,7 @@ uses
|
||||
// synedit
|
||||
SynRegExpr,
|
||||
// ide
|
||||
LazarusIDEStrConsts, FindInFilesDlg, SearchResultView;
|
||||
LazarusIDEStrConsts, InputHistory, FindInFilesDlg, SearchResultView;
|
||||
|
||||
|
||||
type
|
||||
@ -161,7 +161,7 @@ begin
|
||||
frecursive:= (fifIncludeSubDirs in TheOptions);
|
||||
fSearchProject:= (fifSearchProject in TheOptions);
|
||||
fSearchOpen:= (fifSearchOpen in TheOptions);
|
||||
fSearchFiles:= (fifSearchFiles in TheOptions);
|
||||
fSearchFiles:= (fifSearchDirectories in TheOptions);
|
||||
end;//SetOptions
|
||||
|
||||
function TSearchForm.GetOptions: TLazFindInFileSearchOptions;
|
||||
@ -173,7 +173,7 @@ begin
|
||||
if fRecursive then include(Result,fifIncludeSubDirs);
|
||||
if fSearchProject then include(Result, fifSearchProject);
|
||||
if fSearchOpen then include(Result,fifSearchOpen);
|
||||
if fSearchFiles then include(Result,fifSearchFiles);
|
||||
if fSearchFiles then include(Result,fifSearchDirectories);
|
||||
end;//GetOptions
|
||||
|
||||
procedure TSearchForm.DoSearch;
|
||||
|
@ -148,6 +148,15 @@ type
|
||||
|
||||
{ TInputHistories }
|
||||
|
||||
TLazFindInFileSearchOption = (
|
||||
fifMatchCase, fifWholeWord, fifRegExpr,
|
||||
fifSearchProject, // search in all project files
|
||||
fifSearchOpen, // search in all open files in editor
|
||||
fifSearchDirectories,// search in directories
|
||||
fifIncludeSubDirs
|
||||
);
|
||||
TLazFindInFileSearchOptions = set of TLazFindInFileSearchOption;
|
||||
|
||||
TInputHistories = class
|
||||
private
|
||||
FDiffFlags: TTextDiffFlags;
|
||||
@ -158,11 +167,10 @@ type
|
||||
|
||||
// Find- and replace-history
|
||||
FFindHistory: TStringList;
|
||||
FFindInFilesSearchOptions: TLazFindInFileSearchOptions;
|
||||
FReplaceHistory: TStringList;
|
||||
FFindInFilesPathHistory: TStringList;
|
||||
FFindInFilesMaskHistory: TStringList;
|
||||
FFindInFilesWhere : Integer;
|
||||
FFindInFilesSubDirs : boolean;
|
||||
FMaxFindHistory: Integer;
|
||||
|
||||
// Unit dependencies
|
||||
@ -204,17 +212,18 @@ type
|
||||
procedure ApplyFileDialogSettings(DestDialog: TFileDialog);
|
||||
procedure StoreFileDialogSettings(SourceDialog: TFileDialog);
|
||||
public
|
||||
property Filename: string read FFilename write SetFilename;
|
||||
|
||||
// Find- and replace-history
|
||||
property MaxFindHistory: Integer read FMaxFindHistory write FMaxFindHistory;
|
||||
property FindHistory: TStringList read FFindHistory write FFindHistory;
|
||||
property ReplaceHistory: TStringList read FReplaceHistory write FReplaceHistory;
|
||||
property FindInFilesPathHistory: TStringList read FFindInFilesPathHistory
|
||||
write FFindInFilesPathHistory;
|
||||
property FindInFilesMaskHistory: TStringList read FFindInFilesMaskHistory
|
||||
write FFindInFilesMaskHistory;
|
||||
property MaxFindHistory: Integer read FMaxFindHistory write FMaxFindHistory;
|
||||
property FindInFilesWhere: Integer read FFindInFilesWhere write FFindInFilesWhere;
|
||||
property FindInFilesSubDirs: Boolean read FFindInFilesSubDirs write FFindInFilesSubDirs;
|
||||
property Filename: string read FFilename write SetFilename;
|
||||
property FindInFilesSearchOptions: TLazFindInFileSearchOptions
|
||||
read FFindInFilesSearchOptions write FFindInFilesSearchOptions;
|
||||
|
||||
// Unit dependencies
|
||||
property UnitDependenciesHistory: TStringList read FUnitDependenciesHistory;
|
||||
@ -238,6 +247,18 @@ type
|
||||
write FDiffText2OnlySelection;
|
||||
end;
|
||||
|
||||
const
|
||||
LazFindInFileSearchOptionsDefault = [fifSearchOpen];
|
||||
LazFindInFileSearchOptionNames: array[TLazFindInFileSearchOption] of string =(
|
||||
'MatchCase',
|
||||
'WholeWord',
|
||||
'RegExpr',
|
||||
'SearchProject',
|
||||
'SearchOpen',
|
||||
'SearchDirectories',
|
||||
'IncludeSubDirs'
|
||||
);
|
||||
|
||||
var
|
||||
InputHistories: TInputHistories;
|
||||
|
||||
@ -261,13 +282,16 @@ end;
|
||||
constructor TInputHistories.Create;
|
||||
begin
|
||||
inherited Create;
|
||||
FFilename:='';
|
||||
|
||||
// Find- and replace-history
|
||||
FMaxFindHistory:=20;
|
||||
FFindHistory:=TStringList.Create;
|
||||
FReplaceHistory:=TStringList.Create;
|
||||
FFindInFilesPathHistory:=TStringList.Create;
|
||||
FFindInFilesMaskHistory:=TStringList.Create;
|
||||
FMaxFindHistory:=20;
|
||||
|
||||
FFindInFilesSearchOptions:=LazFindInFileSearchOptionsDefault;
|
||||
|
||||
// unit dependencies
|
||||
FUnitDependenciesHistory:=TStringList.Create;
|
||||
FMaxUnitDependenciesHistory:=20;
|
||||
@ -281,7 +305,6 @@ begin
|
||||
|
||||
FFPCConfigCache:=TFPCConfigCache.Create;
|
||||
|
||||
FFilename:='';
|
||||
Clear;
|
||||
end;
|
||||
|
||||
@ -321,6 +344,7 @@ procedure TInputHistories.LoadFromXMLConfig(XMLConfig: TXMLConfig;
|
||||
const Path: string);
|
||||
var
|
||||
DiffFlag: TTextDiffFlag;
|
||||
FIFOption: TLazFindInFileSearchOption;
|
||||
begin
|
||||
// Find- and replace-history
|
||||
fMaxFindHistory:=XMLConfig.GetValue(Path+'Find/History/Max',FMaxFindHistory);
|
||||
@ -330,9 +354,16 @@ begin
|
||||
'FindInFiles/History/Paths/');
|
||||
LoadRecentList(XMLConfig,FFindInFilesMaskHistory,Path+
|
||||
'FindInFiles/History/Masks/');
|
||||
FFindInFilesWhere:=XMLConfig.GetValue(Path+'FindInFiles/Where',FFindInFilesWhere);
|
||||
FFIndInFilesSubDirs:=
|
||||
XMLConfig.GetValue(Path+'FindInFiles/SubDirs',false);
|
||||
FFindInFilesSearchOptions:=[];
|
||||
for FIFOption:=Low(TLazFindInFileSearchOption)
|
||||
to High(TLazFindInFileSearchOption) do begin
|
||||
if XMLConfig.GetValue(
|
||||
Path+'FindInFiles/Options/'+LazFindInFileSearchOptionNames[FIFOption],
|
||||
FIFOption in LazFindInFileSearchOptionsDefault)
|
||||
then
|
||||
Include(FFindInFilesSearchOptions,FIFOption);
|
||||
end;
|
||||
|
||||
// unit dependencies
|
||||
LoadRecentList(XMLConfig,FUnitDependenciesHistory,Path+'UnitDependencies/History/');
|
||||
// fpc config cache
|
||||
@ -365,6 +396,7 @@ procedure TInputHistories.SaveToXMLConfig(XMLConfig: TXMLConfig;
|
||||
const Path: string);
|
||||
var
|
||||
DiffFlag: TTextDiffFlag;
|
||||
FIFOption: TLazFindInFileSearchOption;
|
||||
begin
|
||||
// Find- and replace-history
|
||||
XMLConfig.SetDeleteValue(Path+'Find/History/Max',FMaxFindHistory,20);
|
||||
@ -374,9 +406,14 @@ begin
|
||||
'FindInFiles/History/Paths/');
|
||||
SaveRecentList(XMLConfig,FFindInFilesMaskHistory,Path+
|
||||
'FindInFiles/History/Masks/');
|
||||
XMLConfig.SetDeleteValue(Path+'FindInFiles/Where',FFindInFilesWhere,0);
|
||||
XMLConfig.SetDeleteValue(Path+'FindInFiles/SubDirs',
|
||||
FFindInFilesSubDirs,false);
|
||||
for FIFOption:=Low(TLazFindInFileSearchOption)
|
||||
to High(TLazFindInFileSearchOption) do begin
|
||||
XMLConfig.SetDeleteValue(
|
||||
Path+'FindInFiles/Options/'+LazFindInFileSearchOptionNames[FIFOption],
|
||||
FIFOption in FindInFilesSearchOptions,
|
||||
FIFOption in LazFindInFileSearchOptionsDefault);
|
||||
end;
|
||||
|
||||
// unit dependencies
|
||||
SaveRecentList(XMLConfig,FUnitDependenciesHistory,Path+'UnitDependencies/History/');
|
||||
// fpc config cache
|
||||
|
@ -1811,7 +1811,7 @@ resourcestring
|
||||
lisFindFilesearchAllOpenFiles = 'search all open files';
|
||||
lisFindFilesearchInDirectories = 'search in directories';
|
||||
lisFindFileDirectoryOptions = 'Directory options';
|
||||
lisFindFileFileMaskBak = 'File mask (*, *.*, *.bak?)';
|
||||
lisFindFileFileMaskBak = 'File mask (*;*.*;*.bak?)';
|
||||
lisFindFileIncludeSubDirectories = 'Include sub directories';
|
||||
lisFindFileOnlyTextFiles = 'Only text files';
|
||||
|
||||
|
@ -39,7 +39,8 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, Math, LResources, Forms, Controls, Graphics, Dialogs,
|
||||
ComCtrls, ExtCtrls, StdCtrls, Buttons, LCLType,
|
||||
IDEOptionDefs, LazarusIDEStrConsts, EnvironmentOpts, FindInFilesDlg, Project;
|
||||
IDEOptionDefs, LazarusIDEStrConsts, EnvironmentOpts, InputHistory,
|
||||
FindInFilesDlg, Project;
|
||||
|
||||
|
||||
{TLazSearchMatchPos}
|
||||
|
@ -3414,12 +3414,10 @@ begin
|
||||
TextToFindComboBox.Items.Assign(InputHistories.FindHistory);
|
||||
DirectoryComboBox.Items.Assign(InputHistories.FindInFilesPathHistory);
|
||||
FileMaskComboBox.Items.Assign(InputHistories.FindInFilesMaskHistory);
|
||||
WhereRadioGroup.ItemIndex:=InputHistories.FindInFilesWhere;
|
||||
IncludeSubDirsCheckBox.Checked:=InputHistories.FindInFilesSubDirs;
|
||||
DirectoryOptionsGroupBox.Enabled:= (WhereRadioGroup.ItemIndex = 2);
|
||||
end;//With
|
||||
end;//if
|
||||
end;//LoadFindInFilesHistory
|
||||
Options:=InputHistories.FindInFilesSearchOptions;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSourceNoteBook.SaveFindInFilesHistory(ADialog: TLazFindInFilesDialog);
|
||||
begin
|
||||
@ -3430,12 +3428,11 @@ begin
|
||||
InputHistories.AddToFindHistory(FindText);
|
||||
InputHistories.AddToFindInFilesPathHistory(DirectoryComboBox.Text);
|
||||
InputHistories.AddToFindInFilesMaskHistory(FileMaskComboBox.Text);
|
||||
InputHistories.FindInFilesWhere:=WhereRadioGroup.ItemIndex;
|
||||
InputHistories.FindInFilesSubDirs:=IncludeSubDirsCheckBox.Checked;
|
||||
end;//with
|
||||
InputHistories.FindInFilesSearchOptions:=Options;
|
||||
end;
|
||||
InputHistories.Save;
|
||||
end;//if
|
||||
end;//SaveFindInFilesHistory
|
||||
end;
|
||||
end;
|
||||
|
||||
{Search All the files in a project and add the results to the SearchResultsView
|
||||
Dialog}
|
||||
@ -3586,7 +3583,7 @@ Begin
|
||||
end;//if
|
||||
end;//if
|
||||
IDEDialogLayoutList.SaveLayout(FindInFilesDialog);
|
||||
End;//FindInFilesClicked
|
||||
End;
|
||||
|
||||
procedure TSourceNotebook.ShowSearchResultsView;
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user