mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 11:31:52 +02:00
fixed unregistering imageslink
git-svn-id: trunk@4784 -
This commit is contained in:
parent
711c426a9c
commit
1b40fbe743
@ -12,6 +12,8 @@ uses
|
|||||||
Menus;
|
Menus;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
TCodeExplorerView = class;
|
||||||
|
|
||||||
TOnGetCodeTree =
|
TOnGetCodeTree =
|
||||||
procedure(Sender: TObject; var ACodeTool: TCodeTool) of object;
|
procedure(Sender: TObject; var ACodeTool: TCodeTool) of object;
|
||||||
TOnJumpToCode = procedure(Sender: TObject; const Filename: string;
|
TOnJumpToCode = procedure(Sender: TObject; const Filename: string;
|
||||||
@ -281,26 +283,37 @@ var
|
|||||||
NodeText: String;
|
NodeText: String;
|
||||||
ViewNode: TTreeNode;
|
ViewNode: TTreeNode;
|
||||||
NodeImageIndex: Integer;
|
NodeImageIndex: Integer;
|
||||||
|
ShowNode: Boolean;
|
||||||
|
ShowChilds: Boolean;
|
||||||
begin
|
begin
|
||||||
if CodeNode=nil then exit;
|
if CodeNode=nil then exit;
|
||||||
|
|
||||||
// don't show statements, parameter lists
|
ShowNode:=true;
|
||||||
if (CodeNode.Desc in AllPascalStatements)
|
ShowChilds:=true;
|
||||||
or (CodeNode.Desc in [ctnProcedureHead,ctnParameterList]) then exit;
|
|
||||||
|
|
||||||
if CodeNode.FirstChild=CodeNode.LastChild then begin
|
// don't show statements
|
||||||
// node has no childs or one child
|
if (CodeNode.Desc in AllPascalStatements+[ctnParameterList]) then exit;
|
||||||
// don't show boring details
|
// don't show parameter lists
|
||||||
|
if (CodeNode.Desc in [ctnProcedureHead]) then begin
|
||||||
|
ShowNode:=false;
|
||||||
|
ShowChilds:=false;
|
||||||
|
end;
|
||||||
|
// don't show forward class definitions
|
||||||
|
if (CodeNode.Desc=ctnTypeDefinition)
|
||||||
|
and (CodeNode.FirstChild<>nil) and (CodeNode.FirstChild.Desc=ctnClass)
|
||||||
|
and ((CodeNode.FirstChild.SubDesc and ctnsForwardDeclaration)>0) then begin
|
||||||
|
ShowNode:=false;
|
||||||
|
ShowChilds:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
// don't show keyword nodes
|
||||||
if CodeNode.Desc in [ctnIdentifier,ctnRangedArrayType,
|
if CodeNode.Desc in [ctnIdentifier,ctnRangedArrayType,
|
||||||
ctnOpenArrayType,ctnOfConstType,ctnRangeType,ctnTypeType,ctnFileType,
|
ctnOpenArrayType,ctnOfConstType,ctnRangeType,ctnTypeType,ctnFileType,
|
||||||
ctnVariantType]
|
ctnVariantType]
|
||||||
then begin
|
then
|
||||||
CreateNodes(ACodeTool,CodeNode.FirstChild,ParentViewNode,InFrontViewNode,
|
ShowNode:=false;
|
||||||
true);
|
|
||||||
exit;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
if ShowNode then begin
|
||||||
NodeData:=TViewNodeData.Create(CodeNode);
|
NodeData:=TViewNodeData.Create(CodeNode);
|
||||||
NodeText:=GetNodeDescription(ACodeTool,CodeNode);
|
NodeText:=GetNodeDescription(ACodeTool,CodeNode);
|
||||||
NodeImageIndex:=GetNodeImage(CodeNode);
|
NodeImageIndex:=GetNodeImage(CodeNode);
|
||||||
@ -314,9 +327,16 @@ begin
|
|||||||
ViewNode:=CodeTreeview.Items.AddObject(nil,NodeText,NodeData);
|
ViewNode:=CodeTreeview.Items.AddObject(nil,NodeText,NodeData);
|
||||||
ViewNode.ImageIndex:=NodeImageIndex;
|
ViewNode.ImageIndex:=NodeImageIndex;
|
||||||
ViewNode.SelectedIndex:=NodeImageIndex;
|
ViewNode.SelectedIndex:=NodeImageIndex;
|
||||||
|
if ShowChilds then
|
||||||
CreateNodes(ACodeTool,CodeNode.FirstChild,ViewNode,nil,true);
|
CreateNodes(ACodeTool,CodeNode.FirstChild,ViewNode,nil,true);
|
||||||
if CreateSiblings then begin
|
if CreateSiblings then
|
||||||
CreateNodes(ACodeTool,CodeNode.NextBrother,ParentViewNode,ViewNode,true);
|
CreateNodes(ACodeTool,CodeNode.NextBrother,ParentViewNode,ViewNode,true);
|
||||||
|
end else begin
|
||||||
|
if ShowChilds then
|
||||||
|
CreateNodes(ACodeTool,CodeNode.FirstChild,ParentViewNode,nil,true);
|
||||||
|
if CreateSiblings then
|
||||||
|
CreateNodes(ACodeTool,CodeNode.NextBrother,ParentViewNode,InFrontViewNode,
|
||||||
|
true);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -273,14 +273,19 @@ end;
|
|||||||
Destructor for the class.
|
Destructor for the class.
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
destructor TCustomImageList.Destroy;
|
destructor TCustomImageList.Destroy;
|
||||||
var i: integer;
|
var
|
||||||
|
i: integer;
|
||||||
begin
|
begin
|
||||||
FBitmap.Free;
|
FBitmap.Free;
|
||||||
|
FBitmap:=nil;
|
||||||
FMaskBitmap.Free;
|
FMaskBitmap.Free;
|
||||||
FChangeLinkList.Free;
|
FMaskBitmap:=nil;
|
||||||
for i:=0 to FImageList.Count-1 do TObject(FImageList[i]).Free;
|
for i:=0 to FImageList.Count-1 do TObject(FImageList[i]).Free;
|
||||||
FImageList.Free; //shane
|
FImageList.Free; //shane
|
||||||
|
FImageList:=nil;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
|
FChangeLinkList.Free;
|
||||||
|
FChangeLinkList:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{------------------------------------------------------------------------------
|
{------------------------------------------------------------------------------
|
||||||
@ -940,7 +945,9 @@ end;
|
|||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
procedure TCustomImageList.UnRegisterChanges(Value: TChangeLink);
|
procedure TCustomImageList.UnRegisterChanges(Value: TChangeLink);
|
||||||
begin
|
begin
|
||||||
|
if (FChangeLinkList<>nil) and (Value.Sender=Self) then
|
||||||
FChangeLinkList.Remove(Value);
|
FChangeLinkList.Remove(Value);
|
||||||
|
Value.Sender:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{******************************************************************************
|
{******************************************************************************
|
||||||
@ -978,6 +985,9 @@ end;
|
|||||||
{
|
{
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.18 2003/11/08 23:42:24 mattias
|
||||||
|
fixed unregistering imageslink
|
||||||
|
|
||||||
Revision 1.17 2003/03/11 07:46:43 mattias
|
Revision 1.17 2003/03/11 07:46:43 mattias
|
||||||
more localization for gtk- and win32-interface and lcl
|
more localization for gtk- and win32-interface and lcl
|
||||||
|
|
||||||
|
@ -2613,16 +2613,16 @@ end;
|
|||||||
|
|
||||||
destructor TCustomTreeView.Destroy;
|
destructor TCustomTreeView.Destroy;
|
||||||
begin
|
begin
|
||||||
FTreeNodes.Free;
|
Images:=nil;
|
||||||
FTreeNodes:=nil;
|
FreeThenNil(FTreeNodes);
|
||||||
FChangeTimer.Free;
|
FreeThenNil(FChangeTimer);
|
||||||
FSaveItems.Free;
|
FreeThenNil(FSaveItems);
|
||||||
FDragImage.Free;
|
FreeThenNil(FDragImage);
|
||||||
//FMemStream.Free;
|
//FMemStream.Free;
|
||||||
//FreeObjectInstance(FEditInstance);
|
//FreeObjectInstance(FEditInstance);
|
||||||
FImageChangeLink.Free;
|
FreeThenNil(FImageChangeLink);
|
||||||
FStateChangeLink.Free;
|
FreeThenNil(FStateChangeLink);
|
||||||
FCanvas.Free;
|
FreeThenNil(FCanvas);
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user