mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 14:40:25 +02:00
project groups: enable/disable build modes
git-svn-id: trunk@50433 -
This commit is contained in:
parent
0d62cb6fed
commit
318abf35d9
@ -96,6 +96,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
StateImages = ImageListMain
|
StateImages = ImageListMain
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnDblClick = TVPGDblClick
|
OnDblClick = TVPGDblClick
|
||||||
|
OnMouseDown = TVPGMouseDown
|
||||||
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
Options = [tvoAutoItemHeight, tvoKeepCollapsedNodes, tvoReadOnly, tvoRightClickSelect, tvoShowButtons, tvoShowLines, tvoShowRoot, tvoToolTips, tvoThemedDraw]
|
||||||
end
|
end
|
||||||
object SBPG: TStatusBar
|
object SBPG: TStatusBar
|
||||||
@ -118,7 +119,7 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
left = 128
|
left = 128
|
||||||
top = 184
|
top = 184
|
||||||
Bitmap = {
|
Bitmap = {
|
||||||
4C69160000001000000010000000FFFFFF009E6E4D2B9D6D4CD69D6D4BC59D6C
|
4C69180000001000000010000000FFFFFF009E6E4D2B9D6D4CD69D6D4BC59D6C
|
||||||
4BFF9C6C4AFF9C6B49FF9B6A49FF9B6A48FF9A6947FF996846FF986745FF9364
|
4BFF9C6C4AFF9C6B49FF9B6A49FF9B6A48FF9A6947FF996846FF986745FF9364
|
||||||
43FF845D3EDEFFFFFF00FFFFFF00FFFFFF009D6D4C919D6D4BFEBB9778FFAC82
|
43FF845D3EDEFFFFFF00FFFFFF00FFFFFF009D6D4C919D6D4BFEBB9778FFAC82
|
||||||
62FFAC8161FFAB8060FFAB7F5FFFAA7F5EFFA87E5DFFA87C5CFF9D6D4CFF9766
|
62FFAC8161FFAB8060FFAB7F5FFFAA7F5EFFA87E5DFFA87C5CFF9D6D4CFF9766
|
||||||
@ -822,7 +823,71 @@ object ProjectGroupEditorForm: TProjectGroupEditorForm
|
|||||||
F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
|
F8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFBF8FFFEFB
|
||||||
F8FFC89A7CFFC79879FFAD6B40FFD8AB8EFFCD9570FFBD7342FFB76835FFB568
|
F8FFC89A7CFFC79879FFAD6B40FFD8AB8EFFCD9570FFBD7342FFB76835FFB568
|
||||||
35FFB46734FFB26634FFB06533FFAE6433FFAC6332FFAA6232FFA96132FFA860
|
35FFB46734FFB26634FFB06533FFAE6433FFAC6332FFAA6232FFA96132FFA860
|
||||||
31FFA76132FFAB693CFFBC8661FF
|
31FFA76132FFAB693CFFBC8661FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004EA2
|
||||||
|
57914A9D527FFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004DA1569163B3
|
||||||
|
6DFF5FAF69FF41914979FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004CA0559162B26CFF82D1
|
||||||
|
8FFF7AC885FF57A660FF38843F7BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004B9F549160B06AFF81CF8DFF7FCF
|
||||||
|
8BFF58A761FF398540FF347E3A08FFFFFF00FFFFFF005FBB6A435CB76765FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF004B9E53915FAF69FF7FCE8AFF7ECE89FF57A6
|
||||||
|
60FF37823DFC337D3908FFFFFF00FFFFFF005FBA6A3C5CB666E66DC079FF55AC
|
||||||
|
5F6FFFFFFF00FFFFFF004A9D52915EAE68FF7DCD89FF7CCD87FF56A55FFF3681
|
||||||
|
3CFC327C3808FFFFFF00FFFFFF005EB969465BB566E479C986FF80CE8DFF51A6
|
||||||
|
5AFC4DA1566F499C518B5CAD67FF7CCC86FF79CB85FF54A45DFF35803BFC317B
|
||||||
|
3708FFFFFF00FFFFFF00FFFFFF005AB4650959B063FF6BBD76FF84D290FF7AC9
|
||||||
|
85FF60B26AFF63B46DFF78C983FF78CB82FF53A35CFF347F3AFD317A3608FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0053A95C0A51A65AFF63B56DFF7ECE
|
||||||
|
89FF7BCC87FF76CA81FF76C981FF52A25AFF347E3AFE30793508FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004B9E530A499A51FF5BAC
|
||||||
|
64FF77CA82FF74C87EFF51A059FF337D39FE2F783508FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004292490A408E
|
||||||
|
47FF54A35CFF4F9F57FF327C38FE2E773408FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003985
|
||||||
|
400A37833DFF317B37FB2E763307FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00317A360A2D753207FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006360
|
||||||
|
F80AFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007774FF1F7774
|
||||||
|
FF2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00625FF82B5D5B
|
||||||
|
F76F5956F53EFFFFFF00FFFFFF00FFFFFF00FFFFFF007774FF1F7A77FFFF7976
|
||||||
|
FEFF726FFD2BFFFFFF00FFFFFF00FFFFFF00FFFFFF00615EF82B6461F8FF6A68
|
||||||
|
F9FF5451F3A84F4DF229FFFFFF00FFFFFF007774FF1F7A77FFFF817EFFFF817E
|
||||||
|
FEFF7471FDFF6C69FB2BFFFFFF00FFFFFF00605DF72B625FF8FF6F6DFBFF7E7C
|
||||||
|
FFFF625FF8FF4A47F06F4542EE02FFFFFF007673FF087471FEFD7D7AFEFF8A87
|
||||||
|
FFFF7C79FDFF6C69FBFF6361F92B5F5CF72B615EF8FF6E6CFAFF7D7AFFFF615F
|
||||||
|
F7FF4946F0FC4441EE05FFFFFF00FFFFFF00FFFFFF00716EFD086E6BFCFC7774
|
||||||
|
FDFF8682FFFF7673FCFF6462F8FF605DF7FF6D6AFAFF7B79FFFF605DF7FF4845
|
||||||
|
EFFC4341EE08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF006967FB086663
|
||||||
|
F9FC706DFBFF807EFFFF7E7BFFFF7C79FFFF7977FFFF5E5CF7FF4744EFFC4240
|
||||||
|
EE08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00615E
|
||||||
|
F8085D5AF6FD7D79FFFF5E5BFFFF5B58FFFF7674FFFF4643EFFD413FED08FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005C59
|
||||||
|
F62B5D5BF7FF7976FFFF5956FFFF5754FFFF7270FFFF4846F0FF3C39EB2BFFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005B58F62B5C5A
|
||||||
|
F6FF6764FAFF7472FFFF7370FFFF706EFFFF6E6CFFFF5755F7FF3F3DEEFF3230
|
||||||
|
E82BFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005A57F52B5B59F6FF6663
|
||||||
|
FAFF7471FFFF5A58F6FF4341EEFC3E3CECFD504DF4FF6867FFFF504EF5FF3634
|
||||||
|
EBFF2A27E52BFFFFFF00FFFFFF00FFFFFF005956F52B5B58F6FF6562FAFF7170
|
||||||
|
FFFF5956F6FF4240EEFC3E3BEC083937EB083532E9FC4745F2FF6362FFFF4A48
|
||||||
|
F4FF2F2DE9FF2220E32BFFFFFF00FFFFFF005451F3415856F5FF6361FAFF5855
|
||||||
|
F6FF413FEDFC3D3AEC08FFFFFF00FFFFFF00302DE7082C2AE6FC413FF1FF4C4A
|
||||||
|
F6FF312FEAFF1F1DE241FFFFFF00FFFFFF00FFFFFF004A47F0414F4CF2FF403E
|
||||||
|
EDFD3C39EB08FFFFFF00FFFFFF00FFFFFF00FFFFFF002725E5082422E4FC312F
|
||||||
|
EAFF1F1DE241FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003F3DED413B38
|
||||||
|
EB08FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00211FE3081E1C
|
||||||
|
E241FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
object PopupMenuMore: TPopupMenu
|
object PopupMenuMore: TPopupMenu
|
||||||
|
@ -130,6 +130,8 @@ type
|
|||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
procedure PopupMenuMorePopup(Sender: TObject);
|
procedure PopupMenuMorePopup(Sender: TObject);
|
||||||
procedure TVPGDblClick(Sender: TObject);
|
procedure TVPGDblClick(Sender: TObject);
|
||||||
|
procedure TVPGMouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
private
|
private
|
||||||
FProjectGroup: TProjectGroup;
|
FProjectGroup: TProjectGroup;
|
||||||
FProjectGroupTVNode: TTreeNode;
|
FProjectGroupTVNode: TTreeNode;
|
||||||
@ -167,10 +169,11 @@ type
|
|||||||
procedure FillProjectNode(AParent: TTreeNode; T: TPGCompileTarget);
|
procedure FillProjectNode(AParent: TTreeNode; T: TPGCompileTarget);
|
||||||
procedure FillTargetNode(AParent: TTreeNode; T: TPGCompileTarget);
|
procedure FillTargetNode(AParent: TTreeNode; T: TPGCompileTarget);
|
||||||
procedure FillProjectGroupNode(AParent: TTreeNode; AProjectGroup: TProjectGroup; Out TargetNodes: TTargetNodes);
|
procedure FillProjectGroupNode(AParent: TTreeNode; AProjectGroup: TProjectGroup; Out TargetNodes: TTargetNodes);
|
||||||
function GetNodeIndex(ANodeType: TNodeType; ANodeData: TPGCompileTarget ): Integer;
|
function GetNodeImageIndex(ANodeType: TNodeType; ANodeData: TPGCompileTarget ): Integer;
|
||||||
function SelectedNodeData: TNodeData;
|
function SelectedNodeData: TNodeData;
|
||||||
function SelectedTarget: TPGCompileTarget;
|
function SelectedTarget: TPGCompileTarget;
|
||||||
function GetTVNodeFilename(TVNode: TTreeNode): string;
|
function GetTVNodeFilename(TVNode: TTreeNode): string;
|
||||||
|
function GetBuildMode(TVNode: TTreeNode): TPGBuildMode;
|
||||||
function SelectedNodeType: TPGCompileTarget;
|
function SelectedNodeType: TPGCompileTarget;
|
||||||
procedure UpdateIDEMenuCommandFromAction(Sender: TObject; Item: TIDEMenuCommand);
|
procedure UpdateIDEMenuCommandFromAction(Sender: TObject; Item: TIDEMenuCommand);
|
||||||
procedure UpdateStatusBarTargetCount;
|
procedure UpdateStatusBarTargetCount;
|
||||||
@ -225,6 +228,10 @@ var
|
|||||||
// Node state image index
|
// Node state image index
|
||||||
NSIActive : Integer = 20; // State index for active.
|
NSIActive : Integer = 20; // State index for active.
|
||||||
|
|
||||||
|
// overlay index
|
||||||
|
NSIChecked : Integer = 22;
|
||||||
|
NSIUnchecked : Integer = 23;
|
||||||
|
|
||||||
// Action image indexes
|
// Action image indexes
|
||||||
iiProjectGroupSave : Integer = -1;
|
iiProjectGroupSave : Integer = -1;
|
||||||
iiProjectGroupSaveAs : Integer = -1;
|
iiProjectGroupSaveAs : Integer = -1;
|
||||||
@ -562,6 +569,33 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectGroupEditorForm.TVPGMouseDown(Sender: TObject;
|
||||||
|
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
|
||||||
|
var
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
ND: TNodeData;
|
||||||
|
aMode: TPGBuildMode;
|
||||||
|
begin
|
||||||
|
TVNode:=TVPG.GetNodeAt(X,Y);
|
||||||
|
ND:=TNodeData(TVNode.Data);
|
||||||
|
if ND=nil then exit;
|
||||||
|
if mbLeft=Button then begin
|
||||||
|
if (ND.NodeType=ntBuildMode) and ([ssShift,ssCtrl]*Shift=[]) then
|
||||||
|
begin
|
||||||
|
if (TVNode.DisplayStateIconLeft<X) and (X<TVNode.DisplayIconLeft) then
|
||||||
|
begin
|
||||||
|
if TVNode.StateIndex=NSIChecked then
|
||||||
|
TVNode.StateIndex:=NSIUnchecked
|
||||||
|
else
|
||||||
|
TVNode.StateIndex:=NSIChecked;
|
||||||
|
aMode:=GetBuildMode(TVNode);
|
||||||
|
if aMode<>nil then
|
||||||
|
aMode.Compile:=TVNode.StateIndex=NSIChecked;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProjectGroupEditorForm.OnTargetAdded(Sender: TObject;
|
procedure TProjectGroupEditorForm.OnTargetAdded(Sender: TObject;
|
||||||
Target: TPGCompileTarget);
|
Target: TPGCompileTarget);
|
||||||
Var
|
Var
|
||||||
@ -848,7 +882,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectGroupEditorForm.GetNodeIndex(ANodeType: TNodeType;
|
function TProjectGroupEditorForm.GetNodeImageIndex(ANodeType: TNodeType;
|
||||||
ANodeData: TPGCompileTarget): Integer;
|
ANodeData: TPGCompileTarget): Integer;
|
||||||
begin
|
begin
|
||||||
Case ANodeType of
|
Case ANodeType of
|
||||||
@ -918,6 +952,24 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TProjectGroupEditorForm.GetBuildMode(TVNode: TTreeNode): TPGBuildMode;
|
||||||
|
var
|
||||||
|
ND: TNodeData;
|
||||||
|
begin
|
||||||
|
Result:=nil;
|
||||||
|
if TVNode=nil then exit;
|
||||||
|
ND:=TNodeData(TVNode.Data);
|
||||||
|
if (ND=nil) or (ND.NodeType<>ntBuildMode) then exit;
|
||||||
|
while TVNode<>nil do begin
|
||||||
|
if (TVNode.Data<>nil) and (TNodeData(TVNode.Data).Target<>nil) then
|
||||||
|
begin
|
||||||
|
Result:=TNodeData(TVNode.Data).Target.FindBuildMode(ND.Value);
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
TVNode:=TVNode.Parent;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TProjectGroupEditorForm.SelectedNodeType: TPGCompileTarget;
|
function TProjectGroupEditorForm.SelectedNodeType: TPGCompileTarget;
|
||||||
Var
|
Var
|
||||||
N: TNodeData;
|
N: TNodeData;
|
||||||
@ -935,7 +987,7 @@ begin
|
|||||||
Node.Data:=ANodeData;
|
Node.Data:=ANodeData;
|
||||||
If (ACaption<>'') then
|
If (ACaption<>'') then
|
||||||
Node.Text:=ACaption;
|
Node.Text:=ACaption;
|
||||||
Node.ImageIndex:=GetNodeIndex(ANodeData.NodeType,ANodeData.Target);
|
Node.ImageIndex:=GetNodeImageIndex(ANodeData.NodeType,ANodeData.Target);
|
||||||
Node.SelectedIndex:=Node.ImageIndex;
|
Node.SelectedIndex:=Node.ImageIndex;
|
||||||
if Assigned(ANodeData.Target) and ANodeData.Target.Active then
|
if Assigned(ANodeData.Target) and ANodeData.Target.Active then
|
||||||
Node.StateIndex:=NSIActive
|
Node.StateIndex:=NSIActive
|
||||||
@ -1196,15 +1248,24 @@ procedure TProjectGroupEditorForm.FillProjectNode(AParent: TTreeNode;
|
|||||||
Var
|
Var
|
||||||
FileNodes,DepNodes: TTargetNodes;
|
FileNodes,DepNodes: TTargetNodes;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
BuildModeNode: TTreeNode;
|
BuildModeNode, TVNode: TTreeNode;
|
||||||
|
aMode: TPGBuildMode;
|
||||||
begin
|
begin
|
||||||
TVPG.BeginUpdate;
|
TVPG.BeginUpdate;
|
||||||
try
|
try
|
||||||
// buildmodes
|
// buildmodes
|
||||||
if T.BuildModeCount>1 then begin
|
if T.BuildModeCount>1 then
|
||||||
|
begin
|
||||||
BuildModeNode:=CreateSectionNode(AParent,lisNodeBuildModes,ntBuildModes);
|
BuildModeNode:=CreateSectionNode(AParent,lisNodeBuildModes,ntBuildModes);
|
||||||
for i:=0 to T.BuildModeCount-1 do
|
for i:=0 to T.BuildModeCount-1 do
|
||||||
CreateSubNode(BuildModeNode,ntBuildMode,T,T.BuildModes[i].Identifier);
|
begin
|
||||||
|
aMode:=T.BuildModes[i];
|
||||||
|
TVNode:=CreateSubNode(BuildModeNode,ntBuildMode,T,aMode.Identifier);
|
||||||
|
if aMode.Compile then
|
||||||
|
TVNode.StateIndex:=NSIChecked
|
||||||
|
else
|
||||||
|
TVNode.StateIndex:=NSIUnchecked;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
// files
|
// files
|
||||||
FileNodes[False]:=CreateSectionNode(AParent,lisNodeFiles,ntFiles);
|
FileNodes[False]:=CreateSectionNode(AParent,lisNodeFiles,ntFiles);
|
||||||
|
Loading…
Reference in New Issue
Block a user