mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-06 05:58:06 +02:00
LCL/LazControls: Update Button.Enabled state of FilterEdit component when it is loaded. Issue #41321.
This commit is contained in:
parent
d6c7371e1f
commit
803ce231ce
@ -163,7 +163,7 @@ begin
|
||||
if (Operation=opRemove) and (FilteredListbox=AComponent) then
|
||||
begin
|
||||
IdleConnected:=False;
|
||||
fNeedUpdate:=False;
|
||||
fNeedFiltering:=False;
|
||||
fFilteredListbox:=nil;
|
||||
end;
|
||||
end;
|
||||
|
@ -180,7 +180,7 @@ begin
|
||||
if (Operation=opRemove) and (FilteredListview=AComponent) then
|
||||
begin
|
||||
IdleConnected:=False;
|
||||
fNeedUpdate:=False;
|
||||
fNeedFiltering:=False;
|
||||
fFilteredListview:=nil;
|
||||
end;
|
||||
end;
|
||||
|
@ -793,7 +793,7 @@ begin
|
||||
if (Operation=opRemove) and (FilteredTreeview=AComponent) then
|
||||
begin
|
||||
IdleConnected:=False;
|
||||
fNeedUpdate:=False;
|
||||
fNeedFiltering:=False;
|
||||
fFilteredTreeview.RemoveHandlerOnBeforeDestruction(@OnBeforeTreeDestroy);
|
||||
fFilteredTreeview:=nil;
|
||||
FreeAndNil(fBranches);
|
||||
|
@ -241,7 +241,7 @@ type
|
||||
protected
|
||||
fAlreadyFiltered: Boolean;
|
||||
fIsFirstUpdate: Boolean;
|
||||
fNeedUpdate: Boolean;
|
||||
fNeedFiltering, fNeedButtonEnabled: Boolean;
|
||||
fSelectedPart: TObject; // Select this node on next update
|
||||
fOnFilterItem: TFilterItemEvent;
|
||||
fOnFilterItemEx: TFilterItemExEvent;
|
||||
@ -1182,6 +1182,8 @@ begin
|
||||
fIsFirstUpdate:=True;
|
||||
fIsFirstSetFormActivate:=True;
|
||||
TextHint:=rsFilter;
|
||||
fNeedButtonEnabled:=True;
|
||||
IdleConnected:=true;
|
||||
end;
|
||||
|
||||
destructor TCustomControlFilterEdit.Destroy;
|
||||
@ -1268,8 +1270,14 @@ end;
|
||||
|
||||
procedure TCustomControlFilterEdit.OnAsync(Data: PtrInt);
|
||||
begin
|
||||
if fNeedUpdate then
|
||||
if fNeedFiltering then begin
|
||||
ApplyFilter(true);
|
||||
fNeedFiltering:=False;
|
||||
end;
|
||||
if fNeedButtonEnabled then begin
|
||||
Button.Enabled:=Text<>'';
|
||||
fNeedButtonEnabled:=False;
|
||||
end;
|
||||
IdleConnected:=false;
|
||||
if Assigned(fOnAfterFilter) then
|
||||
fOnAfterFilter(Self);
|
||||
@ -1326,7 +1334,6 @@ end;
|
||||
procedure TCustomControlFilterEdit.ApplyFilter(Immediately: Boolean);
|
||||
begin
|
||||
if Immediately then begin
|
||||
fNeedUpdate := False;
|
||||
SortAndFilter;
|
||||
if (fSelectedPart=Nil) and not fIsFirstUpdate then
|
||||
StoreSelection; // At first round the selection is from caller
|
||||
@ -1344,7 +1351,7 @@ end;
|
||||
procedure TCustomControlFilterEdit.InvalidateFilter;
|
||||
begin
|
||||
if fAlreadyFiltered then Exit;
|
||||
fNeedUpdate:=true;
|
||||
fNeedFiltering:=true;
|
||||
IdleConnected:=true;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user