mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-06 17:03:36 +01:00
IDE: Allow ComponentList to unselect a component. Issue #29348, patch from Anthony Walter.
git-svn-id: trunk@51213 -
This commit is contained in:
parent
d5272def5e
commit
2e3b9429b8
@ -84,6 +84,8 @@ type
|
|||||||
// List for Component inheritence view
|
// List for Component inheritence view
|
||||||
FClassList: TStringList;
|
FClassList: TStringList;
|
||||||
FKeepSelected: Boolean;
|
FKeepSelected: Boolean;
|
||||||
|
FFixedSelection: Boolean;
|
||||||
|
FPriorSelection: TTreeNode;
|
||||||
procedure ClearSelection;
|
procedure ClearSelection;
|
||||||
procedure SelectionWasChanged;
|
procedure SelectionWasChanged;
|
||||||
procedure ComponentWasAdded({%H-}ALookupRoot, {%H-}AComponent: TComponent;
|
procedure ComponentWasAdded({%H-}ALookupRoot, {%H-}AComponent: TComponent;
|
||||||
@ -200,6 +202,8 @@ end;
|
|||||||
|
|
||||||
procedure TComponentListForm.SelectionWasChanged;
|
procedure TComponentListForm.SelectionWasChanged;
|
||||||
begin
|
begin
|
||||||
|
if FFixedSelection then
|
||||||
|
Exit;
|
||||||
// ToDo: Select the component in active treeview.
|
// ToDo: Select the component in active treeview.
|
||||||
if ListTree.IsVisible then
|
if ListTree.IsVisible then
|
||||||
SelectTreeComp(ListTree)
|
SelectTreeComp(ListTree)
|
||||||
@ -372,6 +376,9 @@ end;
|
|||||||
|
|
||||||
procedure TComponentListForm.TreeFilterEdAfterFilter(Sender: TObject);
|
procedure TComponentListForm.TreeFilterEdAfterFilter(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
if TreeFilterEd.Text = '' then
|
||||||
|
TreeFilterEd.FilteredTreeview.Selected := FPriorSelection;
|
||||||
|
FPriorSelection := nil;
|
||||||
UpdateButtonState;
|
UpdateButtonState;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -386,10 +393,15 @@ procedure TComponentListForm.ComponentsChange(Sender: TObject; Node: TTreeNode);
|
|||||||
var
|
var
|
||||||
AComponent: TRegisteredComponent;
|
AComponent: TRegisteredComponent;
|
||||||
begin
|
begin
|
||||||
AComponent:=GetSelectedComponent;
|
FFixedSelection := True;
|
||||||
if AComponent<>nil then
|
try
|
||||||
|
AComponent:=GetSelectedComponent;
|
||||||
|
// Allow the selected component to be cleared
|
||||||
IDEComponentPalette.SetSelectedComp(AComponent, ssShift in GetKeyShiftState);
|
IDEComponentPalette.SetSelectedComp(AComponent, ssShift in GetKeyShiftState);
|
||||||
UpdateButtonState;
|
UpdateButtonState;
|
||||||
|
finally
|
||||||
|
FFixedSelection := False;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TComponentListForm.TreeKeyPress(Sender: TObject; var Key: char);
|
procedure TComponentListForm.TreeKeyPress(Sender: TObject; var Key: char);
|
||||||
@ -409,6 +421,7 @@ begin
|
|||||||
1: TreeFilterEd.FilteredTreeview := PalletteTree;
|
1: TreeFilterEd.FilteredTreeview := PalletteTree;
|
||||||
2: TreeFilterEd.FilteredTreeview := InheritanceTree;
|
2: TreeFilterEd.FilteredTreeview := InheritanceTree;
|
||||||
end;
|
end;
|
||||||
|
FPriorSelection := TreeFilterEd.FilteredTreeview.Selected;
|
||||||
TreeFilterEd.InvalidateFilter;
|
TreeFilterEd.InvalidateFilter;
|
||||||
PrevPageIndex := PageControl.PageIndex;
|
PrevPageIndex := PageControl.PageIndex;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user