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