mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 16:42:06 +02:00
IDE: Add a selection tool button to ComponentList window. Clear selection when emptying filter. Issue #34256, patch from accorp.
git-svn-id: trunk@58955 -
This commit is contained in:
parent
8108e85270
commit
4f59b471d1
@ -140,10 +140,27 @@ object ComponentListForm: TComponentListForm
|
|||||||
ClientHeight = 27
|
ClientHeight = 27
|
||||||
ClientWidth = 300
|
ClientWidth = 300
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
object LabelSearch: TLabel
|
object SelectionToolButton: TSpeedButton
|
||||||
AnchorSideLeft.Control = FilterPanel
|
AnchorSideLeft.Control = FilterPanel
|
||||||
AnchorSideTop.Control = FilterPanel
|
AnchorSideTop.Control = FilterPanel
|
||||||
Left = 6
|
AnchorSideBottom.Control = FilterPanel
|
||||||
|
AnchorSideBottom.Side = asrBottom
|
||||||
|
Left = 0
|
||||||
|
Height = 27
|
||||||
|
Top = 0
|
||||||
|
Width = 32
|
||||||
|
AllowAllUp = True
|
||||||
|
Anchors = [akTop, akLeft, akBottom]
|
||||||
|
Down = True
|
||||||
|
Flat = True
|
||||||
|
GroupIndex = 1
|
||||||
|
OnClick = SelectionToolButtonClick
|
||||||
|
end
|
||||||
|
object LabelSearch: TLabel
|
||||||
|
AnchorSideLeft.Control = SelectionToolButton
|
||||||
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
AnchorSideTop.Control = FilterPanel
|
||||||
|
Left = 38
|
||||||
Height = 15
|
Height = 15
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 63
|
Width = 63
|
||||||
|
@ -32,10 +32,16 @@ unit ComponentList;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, LCLType, Forms, Controls, Graphics, StdCtrls, ExtCtrls,
|
Classes, SysUtils,
|
||||||
ComCtrls, Menus, Dialogs, LazarusIDEStrConsts, ComponentReg, PackageDefs,
|
// LCL
|
||||||
IDEImagesIntf, TreeFilterEdit, FormEditingIntf, PropEdits, IDEOptionDefs,
|
LCLType, Forms, Controls, Graphics, StdCtrls, ExtCtrls, ComCtrls, Menus, Buttons,
|
||||||
EnvironmentOpts, Designer, ImgList;
|
Dialogs, ImgList,
|
||||||
|
// LazControls
|
||||||
|
TreeFilterEdit,
|
||||||
|
// IdeIntf
|
||||||
|
FormEditingIntf, PropEdits, ComponentReg,
|
||||||
|
// IDE
|
||||||
|
LazarusIDEStrConsts, PackageDefs, IDEOptionDefs, EnvironmentOpts, Designer;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -64,6 +70,7 @@ type
|
|||||||
TabSheetList: TTabSheet;
|
TabSheetList: TTabSheet;
|
||||||
tmDeselect: TTimer;
|
tmDeselect: TTimer;
|
||||||
TreeFilterEd: TTreeFilterEdit;
|
TreeFilterEd: TTreeFilterEdit;
|
||||||
|
SelectionToolButton: TSpeedButton;
|
||||||
procedure chbKeepOpenChange(Sender: TObject);
|
procedure chbKeepOpenChange(Sender: TObject);
|
||||||
procedure FormActivate(Sender: TObject);
|
procedure FormActivate(Sender: TObject);
|
||||||
procedure FormShow(Sender: TObject);
|
procedure FormShow(Sender: TObject);
|
||||||
@ -81,6 +88,7 @@ type
|
|||||||
procedure PageControlChange(Sender: TObject);
|
procedure PageControlChange(Sender: TObject);
|
||||||
procedure TreeKeyPress(Sender: TObject; var Key: char);
|
procedure TreeKeyPress(Sender: TObject; var Key: char);
|
||||||
procedure FormKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
procedure FormKeyDown(Sender: TObject; var Key: Word; {%H-}Shift: TShiftState);
|
||||||
|
procedure SelectionToolButtonClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
PrevPageIndex: Integer;
|
PrevPageIndex: Integer;
|
||||||
PrevChangeStamp: Integer;
|
PrevChangeStamp: Integer;
|
||||||
@ -125,6 +133,14 @@ begin
|
|||||||
|
|
||||||
Name:=NonModalIDEWindowNames[nmiwComponentList];
|
Name:=NonModalIDEWindowNames[nmiwComponentList];
|
||||||
FActiveTree := ListTree;
|
FActiveTree := ListTree;
|
||||||
|
|
||||||
|
with SelectionToolButton do begin
|
||||||
|
LoadGlyphFromResourceName(hInstance, 'tmouse');
|
||||||
|
ShowHint := EnvironmentOptions.ShowHintsForComponentPalette;
|
||||||
|
Width := ComponentPaletteBtnWidth;
|
||||||
|
BorderSpacing.Around := (FilterPanel.Height - ComponentPaletteImageHeight) div 2;
|
||||||
|
end;
|
||||||
|
|
||||||
//Translations
|
//Translations
|
||||||
LabelSearch.Caption := lisMenuFind;
|
LabelSearch.Caption := lisMenuFind;
|
||||||
Caption := lisCmpLstComponents;
|
Caption := lisCmpLstComponents;
|
||||||
@ -133,6 +149,7 @@ begin
|
|||||||
TabSheetInheritance.Caption := lisCmpLstInheritance;
|
TabSheetInheritance.Caption := lisCmpLstInheritance;
|
||||||
OKButton.Caption := lisUse;
|
OKButton.Caption := lisUse;
|
||||||
chbKeepOpen.Caption := lisKeepOpen;
|
chbKeepOpen.Caption := lisKeepOpen;
|
||||||
|
SelectionToolButton.Hint := lisSelectionTool;
|
||||||
|
|
||||||
ListTree.Images := TPkgComponent.Images;
|
ListTree.Images := TPkgComponent.Images;
|
||||||
PalletteTree.Images := TPkgComponent.Images;
|
PalletteTree.Images := TPkgComponent.Images;
|
||||||
@ -251,6 +268,8 @@ end;
|
|||||||
|
|
||||||
procedure TComponentListForm.SelectionWasChanged;
|
procedure TComponentListForm.SelectionWasChanged;
|
||||||
begin
|
begin
|
||||||
|
SelectionToolButton.Down := (IDEComponentPalette.Selected = nil);
|
||||||
|
|
||||||
// ToDo: Select the component in active treeview.
|
// ToDo: Select the component in active treeview.
|
||||||
if FIgnoreSelection then
|
if FIgnoreSelection then
|
||||||
Exit;
|
Exit;
|
||||||
@ -433,6 +452,8 @@ end;
|
|||||||
|
|
||||||
procedure TComponentListForm.TreeFilterEdAfterFilter(Sender: TObject);
|
procedure TComponentListForm.TreeFilterEdAfterFilter(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
if TreeFilterEd.Filter = '' then
|
||||||
|
IDEComponentPalette.SetSelectedComp(nil, False);
|
||||||
UpdateButtonState;
|
UpdateButtonState;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -608,5 +629,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TComponentListForm.SelectionToolButtonClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
SelectionToolButton.Down := True;
|
||||||
|
IDEComponentPalette.SetSelectedComp(nil, False);
|
||||||
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user