mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-01 01:29:45 +02:00
IDE: code explorer: removing forward procs if proc exist
git-svn-id: trunk@20398 -
This commit is contained in:
parent
a0468e41ab
commit
904c6cee55
@ -717,6 +717,7 @@ begin
|
|||||||
ShowNode:=Category in CodeExplorerOptions.Categories;
|
ShowNode:=Category in CodeExplorerOptions.Categories;
|
||||||
if ShowNode then begin
|
if ShowNode then begin
|
||||||
if fCategoryNodes[Category]=nil then begin
|
if fCategoryNodes[Category]=nil then begin
|
||||||
|
// create treenode for new category
|
||||||
NodeData:=TViewNodeData.Create(CodeNode.Parent);
|
NodeData:=TViewNodeData.Create(CodeNode.Parent);
|
||||||
NodeText:=CodeExplorerLocalizedString(Category);
|
NodeText:=CodeExplorerLocalizedString(Category);
|
||||||
NodeImageIndex:=GetCodeNodeImage(ACodeTool,CodeNode.Parent);
|
NodeImageIndex:=GetCodeNodeImage(ACodeTool,CodeNode.Parent);
|
||||||
@ -1568,6 +1569,58 @@ procedure TCodeExplorerView.RefreshCode(OnlyVisible: boolean);
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure DeleteDuplicates(ACodeTool: TCodeTool);
|
||||||
|
|
||||||
|
function IsForward(Data: TViewNodeData): boolean;
|
||||||
|
begin
|
||||||
|
if Data.Desc=ctnProcedure then
|
||||||
|
begin
|
||||||
|
if (Data.CTNode.Parent<>nil) and (Data.CTNode.Parent.Desc=ctnInterface)
|
||||||
|
then
|
||||||
|
exit(true);
|
||||||
|
if ACodeTool.NodeIsForwardProc(Data.CTNode) then
|
||||||
|
exit(true);
|
||||||
|
end;
|
||||||
|
Result:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NextTVNode: TTreeNode;
|
||||||
|
Data: TViewNodeData;
|
||||||
|
NextData: TViewNodeData;
|
||||||
|
DeleteNode: Boolean;
|
||||||
|
DeleteNextNode: Boolean;
|
||||||
|
begin
|
||||||
|
TVNode:=CodeTreeview.Items.GetFirstNode;
|
||||||
|
while TVNode<>nil do begin
|
||||||
|
NextTVNode:=TVNode.GetNext;
|
||||||
|
DeleteNode:=false;
|
||||||
|
DeleteNextNode:=false;
|
||||||
|
if (NextTVNode<>nil)
|
||||||
|
and (CompareTextIgnoringSpace(TVNode.Text,NextTVNode.Text,false)=0) then
|
||||||
|
begin
|
||||||
|
Data:=TViewNodeData(TVNode.Data);
|
||||||
|
NextData:=TViewNodeData(NextTVNode.Data);
|
||||||
|
if IsForward(Data) then
|
||||||
|
DeleteNode:=true;
|
||||||
|
if IsForward(NextData) then
|
||||||
|
DeleteNextNode:=true;
|
||||||
|
end;
|
||||||
|
if DeleteNextNode then begin
|
||||||
|
TViewNodeData(NextTVNode.Data).Free;
|
||||||
|
NextTVNode.Data:=nil;
|
||||||
|
NextTVNode.Delete;
|
||||||
|
NextTVNode:=TVNode;
|
||||||
|
end else if DeleteNode then begin
|
||||||
|
TViewNodeData(TVNode.Data).Free;
|
||||||
|
TVNode.Data:=nil;
|
||||||
|
TVNode.Delete;
|
||||||
|
end;
|
||||||
|
TVNode:=NextTVNode;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
OldExpanded: TTreeNodeExpandedState;
|
OldExpanded: TTreeNodeExpandedState;
|
||||||
ACodeTool: TCodeTool;
|
ACodeTool: TCodeTool;
|
||||||
@ -1650,6 +1703,7 @@ begin
|
|||||||
fSortCodeTool:=ACodeTool;
|
fSortCodeTool:=ACodeTool;
|
||||||
CodeTreeview.CustomSort(@CompareCodeNodes);
|
CodeTreeview.CustomSort(@CompareCodeNodes);
|
||||||
|
|
||||||
|
DeleteDuplicates(ACodeTool);
|
||||||
AutoExpandNodes;
|
AutoExpandNodes;
|
||||||
|
|
||||||
BuildCodeSortedForStartPos;
|
BuildCodeSortedForStartPos;
|
||||||
|
Loading…
Reference in New Issue
Block a user