mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-06 00:58:13 +02:00
cody: unit deps: all units: group nodes
git-svn-id: trunk@41743 -
This commit is contained in:
parent
8480e85171
commit
c97895ac60
@ -1,7 +1,7 @@
|
|||||||
object UnitDependenciesWindow: TUnitDependenciesWindow
|
object UnitDependenciesWindow: TUnitDependenciesWindow
|
||||||
Left = 347
|
Left = 319
|
||||||
Height = 440
|
Height = 440
|
||||||
Top = 188
|
Top = 174
|
||||||
Width = 620
|
Width = 620
|
||||||
Caption = 'UnitDependenciesWindow'
|
Caption = 'UnitDependenciesWindow'
|
||||||
ClientHeight = 440
|
ClientHeight = 440
|
||||||
@ -151,6 +151,7 @@ object UnitDependenciesWindow: TUnitDependenciesWindow
|
|||||||
AllowAllUp = True
|
AllowAllUp = True
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
GroupIndex = 12
|
GroupIndex = 12
|
||||||
|
OnClick = AllUnitsShowGroupNodesSpeedButtonClick
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
end
|
end
|
||||||
@ -167,6 +168,7 @@ object UnitDependenciesWindow: TUnitDependenciesWindow
|
|||||||
AllowAllUp = True
|
AllowAllUp = True
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
GroupIndex = 13
|
GroupIndex = 13
|
||||||
|
OnClick = AllUnitsShowDirsSpeedButtonClick
|
||||||
ShowHint = True
|
ShowHint = True
|
||||||
ParentShowHint = False
|
ParentShowHint = False
|
||||||
end
|
end
|
||||||
@ -179,6 +181,7 @@ object UnitDependenciesWindow: TUnitDependenciesWindow
|
|||||||
Top = 0
|
Top = 0
|
||||||
Width = 175
|
Width = 175
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
OnChange = AllUnitsFilterEditChange
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
Text = 'AllUnitsFilterEdit'
|
Text = 'AllUnitsFilterEdit'
|
||||||
end
|
end
|
||||||
|
@ -99,6 +99,14 @@ type
|
|||||||
function Count: integer;
|
function Count: integer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TUDWFlag = (
|
||||||
|
udwParsing,
|
||||||
|
udwNeedUpdateGroupsLvlGraph,
|
||||||
|
udwNeedUpdateUnitsLvlGraph,
|
||||||
|
udwNeedUpdateAllUnitsTreeView
|
||||||
|
);
|
||||||
|
TUDWFlags = set of TUDWFlag;
|
||||||
|
|
||||||
{ TUnitDependenciesWindow }
|
{ TUnitDependenciesWindow }
|
||||||
|
|
||||||
TUnitDependenciesWindow = class(TForm)
|
TUnitDependenciesWindow = class(TForm)
|
||||||
@ -130,7 +138,10 @@ type
|
|||||||
UnitsSplitter: TSplitter;
|
UnitsSplitter: TSplitter;
|
||||||
UnitsTabSheet: TTabSheet;
|
UnitsTabSheet: TTabSheet;
|
||||||
Timer1: TTimer;
|
Timer1: TTimer;
|
||||||
|
procedure AllUnitsFilterEditChange(Sender: TObject);
|
||||||
procedure AllUnitsMultiselectSpeedButtonClick(Sender: TObject);
|
procedure AllUnitsMultiselectSpeedButtonClick(Sender: TObject);
|
||||||
|
procedure AllUnitsShowDirsSpeedButtonClick(Sender: TObject);
|
||||||
|
procedure AllUnitsShowGroupNodesSpeedButtonClick(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
procedure GroupsLvlGraphSelectionChanged(Sender: TObject);
|
procedure GroupsLvlGraphSelectionChanged(Sender: TObject);
|
||||||
@ -148,6 +159,7 @@ type
|
|||||||
FUsesGraph: TUsesGraph;
|
FUsesGraph: TUsesGraph;
|
||||||
FGroups: TUGGroups; // referenced by Nodes.Data of GroupsLvlGraph
|
FGroups: TUGGroups; // referenced by Nodes.Data of GroupsLvlGraph
|
||||||
FAllUnitsRootUDNode: TUDNode;
|
FAllUnitsRootUDNode: TUDNode;
|
||||||
|
FFlags: TUDWFlags;
|
||||||
function CreateAllUnitsTree: TUDNode;
|
function CreateAllUnitsTree: TUDNode;
|
||||||
procedure SetAllUnitsMultiSelect(AValue: boolean);
|
procedure SetAllUnitsMultiSelect(AValue: boolean);
|
||||||
procedure SetCurrentUnit(AValue: TUGUnit);
|
procedure SetCurrentUnit(AValue: TUGUnit);
|
||||||
@ -161,7 +173,7 @@ type
|
|||||||
procedure AddAdditionalFilesAsStartUnits;
|
procedure AddAdditionalFilesAsStartUnits;
|
||||||
procedure SetupGroupsTabSheet;
|
procedure SetupGroupsTabSheet;
|
||||||
procedure SetupUnitsTabSheet;
|
procedure SetupUnitsTabSheet;
|
||||||
procedure UpdateAddFiles;
|
procedure UpdateUnitsButtons;
|
||||||
procedure UpdateAll;
|
procedure UpdateAll;
|
||||||
procedure UpdateGroupsLvlGraph;
|
procedure UpdateGroupsLvlGraph;
|
||||||
procedure UpdateUnitsLvlGraph;
|
procedure UpdateUnitsLvlGraph;
|
||||||
@ -292,6 +304,26 @@ begin
|
|||||||
AllUnitsMultiSelect:=AllUnitsMultiselectSpeedButton.Down;
|
AllUnitsMultiSelect:=AllUnitsMultiselectSpeedButton.Down;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TUnitDependenciesWindow.AllUnitsShowDirsSpeedButtonClick(
|
||||||
|
Sender: TObject);
|
||||||
|
begin
|
||||||
|
Include(FFlags,udwNeedUpdateAllUnitsTreeView);
|
||||||
|
IdleConnected:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TUnitDependenciesWindow.AllUnitsShowGroupNodesSpeedButtonClick(
|
||||||
|
Sender: TObject);
|
||||||
|
begin
|
||||||
|
Include(FFlags,udwNeedUpdateAllUnitsTreeView);
|
||||||
|
IdleConnected:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TUnitDependenciesWindow.AllUnitsFilterEditChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
Include(FFlags,udwNeedUpdateAllUnitsTreeView);
|
||||||
|
IdleConnected:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TUnitDependenciesWindow.FormDestroy(Sender: TObject);
|
procedure TUnitDependenciesWindow.FormDestroy(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
IdleConnected:=false;
|
IdleConnected:=false;
|
||||||
@ -312,24 +344,35 @@ procedure TUnitDependenciesWindow.OnIdle(Sender: TObject; var Done: Boolean);
|
|||||||
var
|
var
|
||||||
Completed: boolean;
|
Completed: boolean;
|
||||||
begin
|
begin
|
||||||
|
if udwParsing in FFlags then begin
|
||||||
UsesGraph.Parse(true,Completed,200);
|
UsesGraph.Parse(true,Completed,200);
|
||||||
if Completed then begin
|
if Completed then begin
|
||||||
|
Exclude(FFlags,udwParsing);
|
||||||
CreateGroups;
|
CreateGroups;
|
||||||
IdleConnected:=false;
|
|
||||||
ProgressBar1.Visible:=false;
|
ProgressBar1.Visible:=false;
|
||||||
ProgressBar1.Style:=pbstNormal;
|
ProgressBar1.Style:=pbstNormal;
|
||||||
Timer1.Enabled:=false;
|
Timer1.Enabled:=false;
|
||||||
UpdateAll;
|
UpdateAll;
|
||||||
end;
|
end;
|
||||||
|
end else if udwNeedUpdateGroupsLvlGraph in FFlags then
|
||||||
|
UpdateGroupsLvlGraph
|
||||||
|
else if udwNeedUpdateUnitsLvlGraph in FFlags then
|
||||||
|
UpdateUnitsLvlGraph
|
||||||
|
else if udwNeedUpdateAllUnitsTreeView in FFlags then
|
||||||
|
UpdateAllUnitsTreeView
|
||||||
|
else
|
||||||
|
IdleConnected:=false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TUnitDependenciesWindow.SearchPkgsCheckBoxChange(Sender: TObject);
|
procedure TUnitDependenciesWindow.SearchPkgsCheckBoxChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
// ToDo: reparse
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TUnitDependenciesWindow.SearchSrcEditCheckBoxChange(Sender: TObject);
|
procedure TUnitDependenciesWindow.SearchSrcEditCheckBoxChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
// ToDo: reparse
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -357,6 +400,7 @@ begin
|
|||||||
if s<>'' then s+=';';
|
if s<>'' then s+=';';
|
||||||
s+=aFilename;
|
s+=aFilename;
|
||||||
SearchCustomFilesComboBox.Text:=s;
|
SearchCustomFilesComboBox.Text:=s;
|
||||||
|
// ToDo: Reparse
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
finally
|
finally
|
||||||
Dlg.Free;
|
Dlg.Free;
|
||||||
@ -366,13 +410,15 @@ end;
|
|||||||
procedure TUnitDependenciesWindow.SearchCustomFilesCheckBoxChange(
|
procedure TUnitDependenciesWindow.SearchCustomFilesCheckBoxChange(
|
||||||
Sender: TObject);
|
Sender: TObject);
|
||||||
begin
|
begin
|
||||||
UpdateAddFiles;
|
UpdateUnitsButtons;
|
||||||
|
// ToDo: reparse
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TUnitDependenciesWindow.SearchCustomFilesComboBoxChange(
|
procedure TUnitDependenciesWindow.SearchCustomFilesComboBoxChange(
|
||||||
Sender: TObject);
|
Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
// ToDo: reparse
|
||||||
IdleConnected:=true;
|
IdleConnected:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -573,11 +619,12 @@ var
|
|||||||
UGUnit: TUGGroupUnit;
|
UGUnit: TUGGroupUnit;
|
||||||
AVLNode: TAVLTreeNode;
|
AVLNode: TAVLTreeNode;
|
||||||
Group: TUGGroup;
|
Group: TUGGroup;
|
||||||
|
GroupNode: TUDNode;
|
||||||
begin
|
begin
|
||||||
Filter:=UTF8LowerCase(GetAllUnitsFilter);
|
Filter:=UTF8LowerCase(GetAllUnitsFilter);
|
||||||
RootNode:=TUDNode.Create;
|
|
||||||
ShowGroups:=AllUnitsShowGroupNodesSpeedButton.Down;
|
ShowGroups:=AllUnitsShowGroupNodesSpeedButton.Down;
|
||||||
ShowDirectories:=AllUnitsShowDirsSpeedButton.Down;
|
ShowDirectories:=AllUnitsShowDirsSpeedButton.Down;
|
||||||
|
RootNode:=TUDNode.Create;
|
||||||
for AVLNode in UsesGraph.FilesTree do begin
|
for AVLNode in UsesGraph.FilesTree do begin
|
||||||
UGUnit:=TUGGroupUnit(AVLNode.Data);
|
UGUnit:=TUGGroupUnit(AVLNode.Data);
|
||||||
NodeText:=ExtractFileName(UGUnit.Filename);
|
NodeText:=ExtractFileName(UGUnit.Filename);
|
||||||
@ -590,9 +637,14 @@ begin
|
|||||||
GroupName:=Group.Name;
|
GroupName:=Group.Name;
|
||||||
ParentNode:=RootNode;
|
ParentNode:=RootNode;
|
||||||
if ShowGroups then begin
|
if ShowGroups then begin
|
||||||
|
// create group nodes
|
||||||
|
GroupNode:=ParentNode.GetNode(udnGroup,GroupName,true);
|
||||||
|
GroupNode.Identifier:=GroupName;
|
||||||
|
GroupNode.Group:=GroupName;
|
||||||
|
ParentNode:=GroupNode;
|
||||||
end;
|
end;
|
||||||
if ShowDirectories then begin
|
if ShowDirectories then begin
|
||||||
|
// create directory nodes
|
||||||
|
|
||||||
end;
|
end;
|
||||||
Node:=ParentNode.GetNode(udnUnit, NodeText, true);
|
Node:=ParentNode.GetNode(udnUnit, NodeText, true);
|
||||||
@ -612,6 +664,7 @@ var
|
|||||||
j: Integer;
|
j: Integer;
|
||||||
PkgFile: TLazPackageFile;
|
PkgFile: TLazPackageFile;
|
||||||
begin
|
begin
|
||||||
|
Include(FFlags,udwParsing);
|
||||||
UsesGraph.TargetAll:=true;
|
UsesGraph.TargetAll:=true;
|
||||||
|
|
||||||
// project lpr
|
// project lpr
|
||||||
@ -751,10 +804,10 @@ begin
|
|||||||
SelUnitsSearchPrevSpeedButton.Hint:='Search previous unit of this phrase';
|
SelUnitsSearchPrevSpeedButton.Hint:='Search previous unit of this phrase';
|
||||||
SelUnitsSearchPrevSpeedButton.LoadGlyphFromLazarusResource('arrow_up');
|
SelUnitsSearchPrevSpeedButton.LoadGlyphFromLazarusResource('arrow_up');
|
||||||
|
|
||||||
UpdateAddFiles;
|
UpdateUnitsButtons;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TUnitDependenciesWindow.UpdateAddFiles;
|
procedure TUnitDependenciesWindow.UpdateUnitsButtons;
|
||||||
begin
|
begin
|
||||||
SearchCustomFilesComboBox.Enabled:=SearchCustomFilesCheckBox.Checked;
|
SearchCustomFilesComboBox.Enabled:=SearchCustomFilesCheckBox.Checked;
|
||||||
SearchCustomFilesBrowseButton.Enabled:=SearchCustomFilesCheckBox.Checked;
|
SearchCustomFilesBrowseButton.Enabled:=SearchCustomFilesCheckBox.Checked;
|
||||||
@ -762,7 +815,6 @@ end;
|
|||||||
|
|
||||||
procedure TUnitDependenciesWindow.UpdateAll;
|
procedure TUnitDependenciesWindow.UpdateAll;
|
||||||
begin
|
begin
|
||||||
UpdateAddFiles;
|
|
||||||
UpdateGroupsLvlGraph;
|
UpdateGroupsLvlGraph;
|
||||||
UpdateUnitsLvlGraph;
|
UpdateUnitsLvlGraph;
|
||||||
UpdateAllUnitsTreeView;
|
UpdateAllUnitsTreeView;
|
||||||
@ -782,6 +834,7 @@ var
|
|||||||
GrpUnit: TUGGroupUnit;
|
GrpUnit: TUGGroupUnit;
|
||||||
UsedUnit: TUGGroupUnit;
|
UsedUnit: TUGGroupUnit;
|
||||||
begin
|
begin
|
||||||
|
Exclude(FFlags,udwNeedUpdateGroupsLvlGraph);
|
||||||
GroupsLvlGraph.BeginUpdate;
|
GroupsLvlGraph.BeginUpdate;
|
||||||
Graph:=GroupsLvlGraph.Graph;
|
Graph:=GroupsLvlGraph.Graph;
|
||||||
Graph.Clear;
|
Graph.Clear;
|
||||||
@ -789,7 +842,6 @@ begin
|
|||||||
while AVLNode<>nil do begin
|
while AVLNode<>nil do begin
|
||||||
Group:=TUGGroup(AVLNode.Data);
|
Group:=TUGGroup(AVLNode.Data);
|
||||||
AVLNode:=Groups.Groups.FindSuccessor(AVLNode);
|
AVLNode:=Groups.Groups.FindSuccessor(AVLNode);
|
||||||
// ToDo: IsFPCSrcGroup
|
|
||||||
GraphGroup:=Graph.GetNode(Group.Name,true);
|
GraphGroup:=Graph.GetNode(Group.Name,true);
|
||||||
GraphGroup.Data:=Group;
|
GraphGroup.Data:=Group;
|
||||||
GroupObj:=nil;
|
GroupObj:=nil;
|
||||||
@ -856,6 +908,7 @@ var
|
|||||||
NewGroups: TStringToPointerTree;
|
NewGroups: TStringToPointerTree;
|
||||||
UsedUnit: TUGGroupUnit;
|
UsedUnit: TUGGroupUnit;
|
||||||
begin
|
begin
|
||||||
|
Exclude(FFlags,udwNeedUpdateUnitsLvlGraph);
|
||||||
NewGroups:=TStringToPointerTree.Create(false);
|
NewGroups:=TStringToPointerTree.Create(false);
|
||||||
NewUnits:=TFilenameToPointerTree.Create(false);
|
NewUnits:=TFilenameToPointerTree.Create(false);
|
||||||
try
|
try
|
||||||
@ -945,6 +998,7 @@ var
|
|||||||
TV: TTreeView;
|
TV: TTreeView;
|
||||||
OldExpanded: TTreeNodeExpandedState;
|
OldExpanded: TTreeNodeExpandedState;
|
||||||
begin
|
begin
|
||||||
|
Exclude(FFlags,udwNeedUpdateAllUnitsTreeView);
|
||||||
TV:=AllUnitsTreeView;
|
TV:=AllUnitsTreeView;
|
||||||
TV.BeginUpdate;
|
TV.BeginUpdate;
|
||||||
// save old expanded state
|
// save old expanded state
|
||||||
|
Loading…
Reference in New Issue
Block a user