Merged revision(s) 43482-43483 #b99a80c49f-#b99a80c49f from trunk:

LCL: New method ForceFilter for FilterEdit. Issue #25258, patch from Cyrax.
........
Clear the filter edit when leaving package editor. Issue #25258, patch from Cyrax.
........

git-svn-id: branches/fixes_1_2@43516 -
This commit is contained in:
maxim 2013-12-07 17:04:57 +00:00
parent 7c476745db
commit 47f777f294
2 changed files with 15 additions and 2 deletions

View File

@ -365,6 +365,7 @@ type
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure InvalidateFilter;
function ForceFilter(AFilter : String = '') : String;
procedure StoreSelection; virtual; abstract;
procedure RestoreSelection; virtual; abstract;
public
@ -1830,6 +1831,13 @@ begin
IdleConnected:=true;
end;
function TCustomControlFilterEdit.ForceFilter(AFilter: String): String;
begin
Result := FFilter;
FFilter := AFilter;
ApplyFilter(True);
end;
function TCustomControlFilterEdit.GetDefaultGlyphName: String;
begin
Result := ResBtnListFilter;

View File

@ -1773,8 +1773,10 @@ var
FilesBranch, RemovedBranch: TTreeFilterBranch;
Filename: String;
NodeData: TPENodeData;
OldFilter : String;
begin
if LazPackage=nil then exit;
OldFilter := FilterEdit.ForceFilter;
// files belonging to package
FilesBranch:=FilterEdit.GetBranch(FFilesNode);
@ -1816,17 +1818,18 @@ begin
FreeAndNil(FRemovedFilesNode);
end;
end;
FilterEdit.InvalidateFilter; // Data is shown by FilterEdit.
FilterEdit.Filter := OldFilter; // This triggers ApplyFilter
end;
procedure TPackageEditorForm.UpdateRequiredPkgs;
var
CurDependency: TPkgDependency;
RequiredBranch, RemovedBranch: TTreeFilterBranch;
CurNodeText, aFilename: String;
CurNodeText, aFilename, OldFilter: String;
NodeData: TPENodeData;
begin
if LazPackage=nil then exit;
OldFilter := FilterEdit.ForceFilter;
// required packages
RequiredBranch:=FilterEdit.GetBranch(FRequiredPackagesNode);
@ -1870,6 +1873,7 @@ begin
end;
end;
FNextSelectedPart:=nil;
FilterEdit.ForceFilter(OldFilter);
end;
procedure TPackageEditorForm.UpdateSelectedFile;
@ -2406,6 +2410,7 @@ destructor TPackageEditorForm.Destroy;
var
nt: TPENodeType;
begin
FilterEdit.ForceFilter;
for nt:=Low(TPENodeType) to High(TPENodeType) do
FreeNodeData(nt);
if PackageEditorMenuRoot.MenuItem=FilesPopupMenu.Items then