From 288354e07c228fd62c6a1fd8687eb5ddb6fcb6fd Mon Sep 17 00:00:00 2001 From: juha Date: Sat, 17 Oct 2020 19:25:38 +0000 Subject: [PATCH] IDE: Add a Refresh button to SearchResultsView. Does not do anything yet. git-svn-id: trunk@64042 - --- ide/lazarusidestrconsts.pas | 3 +- ide/searchresultview.lfm | 57 +++++++++++++++++++++++--------- ide/searchresultview.pp | 65 +++++++++++++++++++++---------------- 3 files changed, 80 insertions(+), 45 deletions(-) diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index e86fa339b2..ecf28bc9bb 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -5490,7 +5490,8 @@ resourcestring // View Search Results dialog rsFoundButNotListedHere = 'Found but not listed here: '; - rsStartANewSearch = 'Start a new search'; + rsRefreshTheSearch = 'Refresh the search'; + rsNewSearchWithSameCriteria = 'New search with same criteria'; rsCloseCurrentPage = 'Close current page'; rsFilterTheListWithString = 'Filter the lines in list with a string'; rsCloseLeft = 'Close page(s) on the left'; diff --git a/ide/searchresultview.lfm b/ide/searchresultview.lfm index c8e5aad5a2..58287cd123 100644 --- a/ide/searchresultview.lfm +++ b/ide/searchresultview.lfm @@ -1,5 +1,5 @@ object SearchResultsView: TSearchResultsView - Left = 344 + Left = 374 Height = 275 Top = 327 Width = 722 @@ -25,27 +25,38 @@ object SearchResultsView: TSearchResultsView ClientWidth = 722 TabOrder = 1 TabStop = True - object ToolBar: TToolBar - Left = 3 + object PageToolBar: TToolBar + AnchorSideLeft.Control = PageLabel + AnchorSideLeft.Side = asrBottom + Left = 40 Height = 22 Top = 2 - Width = 47 + Width = 70 Align = alNone Anchors = [akTop, akLeft, akBottom] AutoSize = True + BorderSpacing.Left = 3 EdgeInner = esNone EdgeOuter = esNone TabOrder = 0 - object NewSearchButton: TToolButton + object RefreshButton: TToolButton Left = 1 Top = 0 AutoSize = True - Caption = 'NewSearchButton' + Caption = 'RefreshButton' + ImageIndex = 2 + OnClick = RefreshButtonClick + end + object SearchAgainButton: TToolButton + Left = 24 + Top = 0 + AutoSize = True + Caption = 'SearchAgainButton' ImageIndex = 0 - OnClick = NewSearchButtonClick + OnClick = SearchAgainButtonClick end object ClosePageButton: TToolButton - Left = 24 + Left = 47 Top = 0 Caption = 'ClosePageButton' ImageIndex = 1 @@ -53,13 +64,17 @@ object SearchResultsView: TSearchResultsView end end object SearchInListEdit: TTreeFilterEdit - Left = 53 + AnchorSideLeft.Control = PageToolBar + AnchorSideLeft.Side = asrBottom + AnchorSideRight.Control = CloseTabs + Left = 133 Height = 23 Top = 2 - Width = 550 + Width = 460 ButtonWidth = 23 Anchors = [akTop, akLeft, akRight, akBottom] - BorderSpacing.Left = 2 + BorderSpacing.Left = 21 + BorderSpacing.Right = 21 BorderSpacing.Bottom = 1 BorderSpacing.Around = 2 AutoSize = False @@ -87,16 +102,16 @@ object SearchResultsView: TSearchResultsView Top = 0 Action = actCloseLeft end - object tbbCloseRight: TToolButton - Left = 48 - Top = 0 - Action = actCloseRight - end object tbbCloseOthers: TToolButton Left = 25 Top = 0 Action = actCloseOthers end + object tbbCloseRight: TToolButton + Left = 48 + Top = 0 + Action = actCloseRight + end object ToolButton3: TToolButton Left = 71 Height = 22 @@ -109,6 +124,16 @@ object SearchResultsView: TSearchResultsView Action = actCloseAll end end + object PageLabel: TLabel + AnchorSideTop.Control = ControlBar1 + AnchorSideTop.Side = asrCenter + Left = 6 + Height = 18 + Top = 4 + Width = 31 + Caption = 'Page' + ParentColor = False + end end object ResultsNoteBook: TExtendedNotebook Left = 0 diff --git a/ide/searchresultview.pp b/ide/searchresultview.pp index 8297fd54b2..9e784fd1cc 100644 --- a/ide/searchresultview.pp +++ b/ide/searchresultview.pp @@ -40,7 +40,7 @@ uses Classes, SysUtils, strutils, Laz_AVL_Tree, // LCL LCLProc, LCLType, LCLIntf, Forms, Controls, Graphics, ComCtrls, Menus, Clipbrd, - ActnList, ExtCtrls, + ActnList, ExtCtrls, StdCtrls, Dialogs, // LazControls TreeFilterEdit, ExtendedNotebook, // LazUtils @@ -141,8 +141,8 @@ type actNextPage: TAction; actPrevPage: TAction; ActionList: TActionList; - ClosePageButton1: TToolButton; ControlBar1: TPanel; + PageLabel: TLabel; MenuItem1: TMenuItem; mniCollapseAll: TMenuItem; mniExpandAll: TMenuItem; @@ -155,21 +155,24 @@ type tbbCloseLeft: TToolButton; tbbCloseOthers: TToolButton; tbbCloseRight: TToolButton; - ToolBar: TToolBar; - NewSearchButton: TToolButton; + PageToolBar: TToolBar; CloseTabs: TToolBar; + RefreshButton: TToolButton; + SearchAgainButton: TToolButton; ClosePageButton: TToolButton; SearchInListEdit: TTreeFilterEdit; ToolButton3: TToolButton; tbbCloseAll: TToolButton; procedure actNextPageExecute(Sender: TObject); procedure actPrevPageExecute(Sender: TObject); + procedure RefreshButtonClick(Sender: TObject); + procedure SearchAgainButtonClick(Sender: TObject); + procedure ClosePageButtonClick(Sender: TObject); procedure ResultsNoteBookResize(Sender: TObject); procedure tbbCloseAllClick(Sender: TObject); procedure tbbCloseLeftClick(Sender: TObject); procedure tbbCloseOthersClick(Sender: TObject); procedure tbbCloseRightClick(Sender: TObject); - procedure ClosePageButtonClick(Sender: TObject); procedure Form1Create(Sender: TObject); procedure FormClose(Sender: TObject; var CloseAction: TCloseAction); procedure FormKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState); @@ -183,7 +186,6 @@ type {%H-}Shift: TShiftState; X, Y: Integer); procedure TreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure ResultsNoteBookClosetabclicked(Sender: TObject); - procedure NewSearchButtonClick(Sender: TObject); procedure TreeViewAdvancedCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; Stage: TCustomDrawStage; var {%H-}PaintImages, {%H-}DefaultDraw: Boolean); @@ -322,8 +324,9 @@ begin Name:=NonModalIDEWindowNames[nmiwSearchResultsView]; Caption:=lisMenuViewSearchResults; - NewSearchButton.Hint:=rsStartANewSearch; - ClosePageButton.Hint := rsCloseCurrentPage; + RefreshButton.Hint:=rsRefreshTheSearch; + SearchAgainButton.Hint:=rsNewSearchWithSameCriteria; + ClosePageButton.Hint:=rsCloseCurrentPage; SearchInListEdit.Hint:=rsFilterTheListWithString; { Close tabs buttons } actCloseLeft.Hint:=rsCloseLeft; @@ -350,9 +353,10 @@ begin mniExpandAll.Caption := lisExpandAll; mniCollapseAll.Caption := lisCollapseAll; - ToolBar.Images := IDEImages.Images_16; - NewSearchButton.ImageIndex := IDEImages.LoadImage('menu_new_search'); - ClosePageButton.ImageIndex := IDEImages.LoadImage('menu_close'); + PageToolBar.Images := IDEImages.Images_16; + RefreshButton.ImageIndex := IDEImages.LoadImage('laz_refresh'); + SearchAgainButton.ImageIndex := IDEImages.LoadImage('menu_new_search'); + ClosePageButton.ImageIndex := IDEImages.LoadImage('menu_close'); ActionList.Images := IDEImages.Images_16; actClosePage.ImageIndex := IDEImages.LoadImage('menu_close'); { Close tabs buttons } @@ -451,6 +455,26 @@ begin end; end; +procedure TSearchResultsView.RefreshButtonClick(Sender: TObject); +begin + ShowMessage('ToDo: Refresh the search in current page.'); +end; + +procedure TSearchResultsView.SearchAgainButtonClick(Sender: TObject); +var + CurrentTV: TLazSearchResultTV; + SearchObj: TLazSearch; +begin + CurrentTV:= GetTreeView(ResultsNoteBook.PageIndex); + if not Assigned(CurrentTV) then + MainIDEInterface.FindInFilesPerDialog(Project1) + else begin + SearchObj:= CurrentTV.SearchObject; + OnSearchAgainClicked(SearchObj); + MainIDEInterface.FindInFiles(Project1, SearchObj.SearchString); + end; +end; + procedure TSearchResultsView.ClosePageButtonClick(Sender: TObject); begin ClosePage(ResultsNoteBook.PageIndex); @@ -844,7 +868,8 @@ var begin CurrentTV:= GetTreeView(ResultsNoteBook.PageIndex); state := Assigned(CurrentTV) and not CurrentTV.Updating; - NewSearchButton.Enabled := state; + RefreshButton.Enabled := state; + SearchAgainButton.Enabled := state; ClosePageButton.Enabled := state; SearchInListEdit.Enabled := state; if state then @@ -938,22 +963,6 @@ begin ClosePage(TTabSheet(Sender).PageIndex) end; -procedure TSearchResultsView.NewSearchButtonClick(Sender: TObject); -var - CurrentTV: TLazSearchResultTV; - SearchObj: TLazSearch; -begin - CurrentTV:= GetTreeView(ResultsNoteBook.PageIndex); - if not Assigned(CurrentTV) then begin - MainIDEInterface.FindInFilesPerDialog(Project1); - end - else begin - SearchObj:= CurrentTV.SearchObject; - OnSearchAgainClicked(SearchObj); - MainIDEInterface.FindInFiles(Project1, SearchObj.SearchString); - end; -end; - procedure TSearchResultsView.TreeViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin