mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-25 18:01:37 +02:00
project groups: open not loaded project
git-svn-id: trunk@50399 -
This commit is contained in:
parent
4cf9502f8f
commit
816c9bb459
@ -1004,7 +1004,8 @@ begin
|
|||||||
case AAction of
|
case AAction of
|
||||||
taSettings :
|
taSettings :
|
||||||
begin
|
begin
|
||||||
ExecuteIDECommand(Self,ecProjectOptions);
|
if ExecuteIDECommand(Self,ecProjectOptions) then
|
||||||
|
Result:=arOK;
|
||||||
end;
|
end;
|
||||||
taCompileClean,
|
taCompileClean,
|
||||||
taCompile :
|
taCompile :
|
||||||
@ -1017,12 +1018,42 @@ begin
|
|||||||
end;
|
end;
|
||||||
taRun :
|
taRun :
|
||||||
begin
|
begin
|
||||||
LazarusIDE.DoRunProject;
|
if LazarusIDE.DoRunProject=mrOk then
|
||||||
|
Result:=arOk;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
// project not loaded => use lazbuild
|
// project not loaded => use lazbuild
|
||||||
// ToDo
|
case AAction of
|
||||||
|
taOpen:
|
||||||
|
begin
|
||||||
|
// open project
|
||||||
|
if LazarusIDE.DoOpenProjectFile(Filename,[ofAddToRecent])=mrOk then
|
||||||
|
Result:=arOk;
|
||||||
|
end;
|
||||||
|
taSettings:
|
||||||
|
begin
|
||||||
|
// open project, then show options
|
||||||
|
if LazarusIDE.DoOpenProjectFile(Filename,[ofAddToRecent])<>mrOk then
|
||||||
|
exit(arFailed);
|
||||||
|
if ExecuteIDECommand(Self,ecProjectOptions) then
|
||||||
|
Result:=arOK;
|
||||||
|
end;
|
||||||
|
taCompile,
|
||||||
|
taCompileClean:
|
||||||
|
begin
|
||||||
|
// run lazbuild as external tool
|
||||||
|
|
||||||
|
end;
|
||||||
|
taRun:
|
||||||
|
begin
|
||||||
|
// open project, then run
|
||||||
|
if LazarusIDE.DoOpenProjectFile(Filename,[ofAddToRecent])<>mrOk then
|
||||||
|
exit(arFailed);
|
||||||
|
if LazarusIDE.DoRunProject=mrOk then
|
||||||
|
Result:=arOk;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@ -119,7 +119,6 @@ type
|
|||||||
procedure ATargetLaterUpdate(Sender: TObject);
|
procedure ATargetLaterUpdate(Sender: TObject);
|
||||||
procedure ATargetUninstallExecute(Sender: TObject);
|
procedure ATargetUninstallExecute(Sender: TObject);
|
||||||
procedure ATargetUninstallUpdate(Sender: TObject);
|
procedure ATargetUninstallUpdate(Sender: TObject);
|
||||||
procedure OnProjectGroupFileNameChanged(Sender: TObject);
|
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure FormDestroy(Sender: TObject);
|
procedure FormDestroy(Sender: TObject);
|
||||||
procedure TVPGDblClick(Sender: TObject);
|
procedure TVPGDblClick(Sender: TObject);
|
||||||
@ -132,6 +131,7 @@ type
|
|||||||
procedure InitTVNode(Node: TTreeNode; Const ACaption: String;
|
procedure InitTVNode(Node: TTreeNode; Const ACaption: String;
|
||||||
ANodeData: TNodeData);
|
ANodeData: TNodeData);
|
||||||
procedure OnProjectGroupDestroy(Sender: TObject);
|
procedure OnProjectGroupDestroy(Sender: TObject);
|
||||||
|
procedure OnProjectGroupFileNameChanged(Sender: TObject);
|
||||||
procedure OnTargetAdded(Sender: TObject; Target: TPGCompileTarget);
|
procedure OnTargetAdded(Sender: TObject; Target: TPGCompileTarget);
|
||||||
procedure OnTargetDeleted(Sender: TObject; Target: TPGCompileTarget);
|
procedure OnTargetDeleted(Sender: TObject; Target: TPGCompileTarget);
|
||||||
procedure OnTargetActiveChanged(Sender: TObject; Target: TPGCompileTarget);
|
procedure OnTargetActiveChanged(Sender: TObject; Target: TPGCompileTarget);
|
||||||
@ -440,27 +440,6 @@ begin
|
|||||||
UpdateIDEMenuCommandFromAction(Sender,cmdTargetUninstall);
|
UpdateIDEMenuCommandFromAction(Sender,cmdTargetUninstall);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TProjectGroupEditorForm.OnProjectGroupFileNameChanged(Sender: TObject);
|
|
||||||
var
|
|
||||||
TVNode: TTreeNode;
|
|
||||||
NodeData: TNodeData;
|
|
||||||
begin
|
|
||||||
ShowFileName;
|
|
||||||
// ToDo: update nodes
|
|
||||||
TVPG.BeginUpdate;
|
|
||||||
TVNode:=TVPG.Items.GetFirstNode;
|
|
||||||
while TVNode<>nil do begin
|
|
||||||
NodeData:=TNodeData(TVNode.Data);
|
|
||||||
if NodeData is TNodeData then begin
|
|
||||||
if NodeData.NodeType in [ntTarget] then begin
|
|
||||||
TVNode.Text:=DisplayFileName(NodeData);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
TVNode:=TVNode.GetNext;
|
|
||||||
end;
|
|
||||||
TVPG.EndUpdate;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TProjectGroupEditorForm.UpdateIDEMenuCommandFromAction(
|
procedure TProjectGroupEditorForm.UpdateIDEMenuCommandFromAction(
|
||||||
Sender: TObject; Item: TIDEMenuCommand);
|
Sender: TObject; Item: TIDEMenuCommand);
|
||||||
begin
|
begin
|
||||||
@ -815,15 +794,16 @@ Var
|
|||||||
N: TTreeNode;
|
N: TTreeNode;
|
||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
|
FActiveTarget:=nil;
|
||||||
FProjectGroupTVNode:=Nil;
|
FProjectGroupTVNode:=Nil;
|
||||||
FTargetNodes[False]:=Nil;
|
FTargetNodes[False]:=Nil;
|
||||||
FTargetNodes[True]:=Nil;
|
FTargetNodes[True]:=Nil;
|
||||||
For I:=0 to TVPG.Items.Count-1 do
|
For I:=0 to TVPG.Items.Count-1 do
|
||||||
begin
|
begin
|
||||||
N:=TVPG.Items[I];
|
N:=TVPG.Items[I];
|
||||||
TNodeData(N.Data).Free; // Would be nice to have a FreeAndNilData method in TTreeNode.
|
TNodeData(N.Data).Free; // Would be nice to have a FreeAndNilData method in TTreeNode.
|
||||||
N.Data:=Nil;
|
N.Data:=Nil;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TProjectGroupEditorForm.GetNodeIndex(ANodeType: TNodeType; ANodeData: TPGCompileTarget): Integer;
|
function TProjectGroupEditorForm.GetNodeIndex(ANodeType: TNodeType; ANodeData: TPGCompileTarget): Integer;
|
||||||
@ -925,6 +905,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TProjectGroupEditorForm.OnProjectGroupFileNameChanged(Sender: TObject);
|
||||||
|
var
|
||||||
|
TVNode: TTreeNode;
|
||||||
|
NodeData: TNodeData;
|
||||||
|
begin
|
||||||
|
ShowFileName;
|
||||||
|
// ToDo: update nodes
|
||||||
|
TVPG.BeginUpdate;
|
||||||
|
TVNode:=TVPG.Items.GetFirstNode;
|
||||||
|
while TVNode<>nil do begin
|
||||||
|
NodeData:=TNodeData(TVNode.Data);
|
||||||
|
if NodeData is TNodeData then begin
|
||||||
|
if NodeData.NodeType in [ntTarget] then begin
|
||||||
|
TVNode.Text:=DisplayFileName(NodeData);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
TVNode:=TVNode.GetNext;
|
||||||
|
end;
|
||||||
|
TVPG.EndUpdate;
|
||||||
|
end;
|
||||||
|
|
||||||
function TProjectGroupEditorForm.CreateSectionNode(AParent: TTreeNode;
|
function TProjectGroupEditorForm.CreateSectionNode(AParent: TTreeNode;
|
||||||
const ACaption: String; ANodeType: TNodeType): TTreeNode;
|
const ACaption: String; ANodeType: TNodeType): TTreeNode;
|
||||||
Var
|
Var
|
||||||
@ -1059,8 +1060,8 @@ Var
|
|||||||
begin
|
begin
|
||||||
TVPG.BeginUpdate;
|
TVPG.BeginUpdate;
|
||||||
try
|
try
|
||||||
ShowFileName; // Needs FProjectGroupTVNode
|
|
||||||
FreeNodeData;
|
FreeNodeData;
|
||||||
|
ShowFileName; // Needs FProjectGroupTVNode
|
||||||
TVPG.Items.Clear;
|
TVPG.Items.Clear;
|
||||||
FTargetNodes[False]:=Nil;
|
FTargetNodes[False]:=Nil;
|
||||||
FTargetNodes[True]:=Nil;
|
FTargetNodes[True]:=Nil;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user