mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 10:39:09 +02:00
IDE: Add a filter clear button in Code Explorer. Merge request !74 by Sergey Larin.
This commit is contained in:
parent
b0d263f11d
commit
cd0b898131
@ -55,7 +55,7 @@ object CodeExplorerView: TCodeExplorerView
|
|||||||
ClientHeight = 24
|
ClientHeight = 24
|
||||||
ClientWidth = 218
|
ClientWidth = 218
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object CodeFilterEdit: TEdit
|
object CodeFilterEdit: TEditButton
|
||||||
AnchorSideLeft.Control = CodeTreeviewButtonPanel
|
AnchorSideLeft.Control = CodeTreeviewButtonPanel
|
||||||
AnchorSideTop.Control = CodeTreeviewButtonPanel
|
AnchorSideTop.Control = CodeTreeviewButtonPanel
|
||||||
AnchorSideRight.Control = CodeRefreshSpeedButton
|
AnchorSideRight.Control = CodeRefreshSpeedButton
|
||||||
@ -64,8 +64,15 @@ object CodeExplorerView: TCodeExplorerView
|
|||||||
Top = 0
|
Top = 0
|
||||||
Width = 149
|
Width = 149
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Right = 2
|
||||||
|
ButtonWidth = 23
|
||||||
|
MaxLength = 0
|
||||||
|
NumGlyphs = 1
|
||||||
|
OnButtonClick = FilterEditButtonClick
|
||||||
OnChange = CodeFilterEditChange
|
OnChange = CodeFilterEditChange
|
||||||
OnEnter = FilterEditEnter
|
OnEnter = FilterEditEnter
|
||||||
|
PasswordChar = #0
|
||||||
|
Spacing = 2
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = 'CodeFilterEdit'
|
Text = 'CodeFilterEdit'
|
||||||
end
|
end
|
||||||
@ -131,15 +138,22 @@ object CodeExplorerView: TCodeExplorerView
|
|||||||
ClientHeight = 24
|
ClientHeight = 24
|
||||||
ClientWidth = 218
|
ClientWidth = 218
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object DirectivesFilterEdit: TEdit
|
object DirectivesFilterEdit: TEditButton
|
||||||
AnchorSideRight.Control = DirRefreshSpeedButton
|
AnchorSideRight.Control = DirRefreshSpeedButton
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 24
|
Height = 24
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 172
|
Width = 172
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
BorderSpacing.Right = 2
|
||||||
|
ButtonWidth = 23
|
||||||
|
MaxLength = 0
|
||||||
|
NumGlyphs = 1
|
||||||
|
OnButtonClick = FilterEditButtonClick
|
||||||
OnChange = DirectivesFilterEditChange
|
OnChange = DirectivesFilterEditChange
|
||||||
OnEnter = FilterEditEnter
|
OnEnter = FilterEditEnter
|
||||||
|
PasswordChar = #0
|
||||||
|
Spacing = 2
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = 'DirectivesFilterEdit'
|
Text = 'DirectivesFilterEdit'
|
||||||
end
|
end
|
||||||
|
@ -43,7 +43,7 @@ uses
|
|||||||
// LazUtils
|
// LazUtils
|
||||||
LazStringUtils, LazLoggerBase,
|
LazStringUtils, LazLoggerBase,
|
||||||
// LCL
|
// LCL
|
||||||
LCLProc, LCLType, Forms, Controls, Dialogs, Buttons, ComCtrls, Menus, StdCtrls, ExtCtrls,
|
LCLProc, LCLType, Forms, Controls, Dialogs, Buttons, ComCtrls, Menus, ExtCtrls, EditBtn,
|
||||||
// CodeTools
|
// CodeTools
|
||||||
FileProcs, BasicCodeTools, CustomCodeTool, CodeToolManager, CodeAtom,
|
FileProcs, BasicCodeTools, CustomCodeTool, CodeToolManager, CodeAtom,
|
||||||
CodeCache, CodeTree, KeywordFuncLists, FindDeclarationTool, DirectivesTree,
|
CodeCache, CodeTree, KeywordFuncLists, FindDeclarationTool, DirectivesTree,
|
||||||
@ -113,10 +113,10 @@ type
|
|||||||
{ TCodeExplorerView }
|
{ TCodeExplorerView }
|
||||||
|
|
||||||
TCodeExplorerView = class(TForm)
|
TCodeExplorerView = class(TForm)
|
||||||
CodeFilterEdit: TEdit;
|
CodeFilterEdit: TEditButton;
|
||||||
CodePage: TTabSheet;
|
CodePage: TTabSheet;
|
||||||
CodeTreeview: TTreeView;
|
CodeTreeview: TTreeView;
|
||||||
DirectivesFilterEdit: TEdit;
|
DirectivesFilterEdit: TEditButton;
|
||||||
DirectivesPage: TTabSheet;
|
DirectivesPage: TTabSheet;
|
||||||
DirectivesTreeView: TTreeView;
|
DirectivesTreeView: TTreeView;
|
||||||
IdleTimer1: TIdleTimer;
|
IdleTimer1: TIdleTimer;
|
||||||
@ -137,6 +137,7 @@ type
|
|||||||
{%H-}Shift: TShiftState; X, Y: Integer);
|
{%H-}Shift: TShiftState; X, Y: Integer);
|
||||||
procedure DirectivesFilterEditChange(Sender: TObject);
|
procedure DirectivesFilterEditChange(Sender: TObject);
|
||||||
procedure DirRefreshSpeedButtonClick(Sender: TObject);
|
procedure DirRefreshSpeedButtonClick(Sender: TObject);
|
||||||
|
procedure FilterEditButtonClick(Sender: TObject);
|
||||||
procedure FilterEditEnter(Sender: TObject);
|
procedure FilterEditEnter(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure IdleTimer1Timer(Sender: TObject);
|
procedure IdleTimer1Timer(Sender: TObject);
|
||||||
@ -486,6 +487,8 @@ begin
|
|||||||
DirOptionsSpeedButton.Hint:=lisOptions;
|
DirOptionsSpeedButton.Hint:=lisOptions;
|
||||||
CodeFilterEdit.TextHint:=lisCEFilter;
|
CodeFilterEdit.TextHint:=lisCEFilter;
|
||||||
DirectivesFilterEdit.TextHint:=lisCEFilter;
|
DirectivesFilterEdit.TextHint:=lisCEFilter;
|
||||||
|
CodeFilterEdit.Button.Enabled:=false;
|
||||||
|
DirectivesFilterEdit.Button.Enabled:=false;
|
||||||
|
|
||||||
AssignAllImages;
|
AssignAllImages;
|
||||||
// assign the root TMenuItem to the registered menu root.
|
// assign the root TMenuItem to the registered menu root.
|
||||||
@ -543,9 +546,15 @@ begin
|
|||||||
RefreshDirectives(true);
|
RefreshDirectives(true);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCodeExplorerView.FilterEditButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
(Sender as TEditButton).Text:='';
|
||||||
|
IdleTimer1Timer(nil); // immediately reset filter
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCodeExplorerView.FilterEditEnter(Sender: TObject);
|
procedure TCodeExplorerView.FilterEditEnter(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
(Sender as TEdit).SelectAll;
|
(Sender as TEditButton).SelectAll;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCodeExplorerView.FormActivate(Sender: TObject);
|
procedure TCodeExplorerView.FormActivate(Sender: TObject);
|
||||||
@ -725,6 +734,9 @@ begin
|
|||||||
CheckOnIdle;
|
CheckOnIdle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
type
|
||||||
|
TSpeedButtonFriend = class(TSpeedButton);
|
||||||
|
|
||||||
procedure TCodeExplorerView.AssignAllImages;
|
procedure TCodeExplorerView.AssignAllImages;
|
||||||
begin
|
begin
|
||||||
IDEImages.AssignImage(CodeRefreshSpeedButton, 'laz_refresh');
|
IDEImages.AssignImage(CodeRefreshSpeedButton, 'laz_refresh');
|
||||||
@ -758,6 +770,9 @@ begin
|
|||||||
// sections
|
// sections
|
||||||
ImgIDSection := IDEImages.GetImageIndex('ce_section');
|
ImgIDSection := IDEImages.GetImageIndex('ce_section');
|
||||||
ImgIDHint := IDEImages.GetImageIndex('state_hint');
|
ImgIDHint := IDEImages.GetImageIndex('state_hint');
|
||||||
|
|
||||||
|
TSpeedButtonFriend(CodeFilterEdit.Button).ButtonGlyph.LCLGlyphName := ResBtnListFilter;
|
||||||
|
TSpeedButtonFriend(DirectivesFilterEdit.Button).ButtonGlyph.LCLGlyphName := ResBtnListFilter;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCodeExplorerView.GetCodeNodeDescription(ACodeTool: TCodeTool;
|
function TCodeExplorerView.GetCodeNodeDescription(ACodeTool: TCodeTool;
|
||||||
@ -2587,6 +2602,7 @@ var
|
|||||||
TheFilter: String;
|
TheFilter: String;
|
||||||
begin
|
begin
|
||||||
TheFilter:=GetCodeFilter;
|
TheFilter:=GetCodeFilter;
|
||||||
|
CodeFilterEdit.Button.Enabled:=TheFilter<>'';
|
||||||
if FLastCodeFilter=TheFilter then exit;
|
if FLastCodeFilter=TheFilter then exit;
|
||||||
if (FUpdateCount>0) or (CurrentPage<>cepCode) then begin
|
if (FUpdateCount>0) or (CurrentPage<>cepCode) then begin
|
||||||
Include(FFlags,cevCodeRefreshNeeded);
|
Include(FFlags,cevCodeRefreshNeeded);
|
||||||
@ -2606,6 +2622,7 @@ var
|
|||||||
TheFilter: String;
|
TheFilter: String;
|
||||||
begin
|
begin
|
||||||
TheFilter:=DirectivesFilterEdit.Text;
|
TheFilter:=DirectivesFilterEdit.Text;
|
||||||
|
DirectivesFilterEdit.Button.Enabled:=TheFilter<>'';
|
||||||
if FLastDirectivesFilter=TheFilter then exit;
|
if FLastDirectivesFilter=TheFilter then exit;
|
||||||
if (FUpdateCount>0) or (CurrentPage<>cepDirectives) then begin
|
if (FUpdateCount>0) or (CurrentPage<>cepDirectives) then begin
|
||||||
Include(FFlags,cevDirectivesRefreshNeeded);
|
Include(FFlags,cevDirectivesRefreshNeeded);
|
||||||
|
Loading…
Reference in New Issue
Block a user