mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-31 02:52:29 +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
|
||||
taSettings :
|
||||
begin
|
||||
ExecuteIDECommand(Self,ecProjectOptions);
|
||||
if ExecuteIDECommand(Self,ecProjectOptions) then
|
||||
Result:=arOK;
|
||||
end;
|
||||
taCompileClean,
|
||||
taCompile :
|
||||
@ -1017,12 +1018,42 @@ begin
|
||||
end;
|
||||
taRun :
|
||||
begin
|
||||
LazarusIDE.DoRunProject;
|
||||
if LazarusIDE.DoRunProject=mrOk then
|
||||
Result:=arOk;
|
||||
end;
|
||||
end;
|
||||
end else begin
|
||||
// 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;
|
||||
|
||||
|
@ -119,7 +119,6 @@ type
|
||||
procedure ATargetLaterUpdate(Sender: TObject);
|
||||
procedure ATargetUninstallExecute(Sender: TObject);
|
||||
procedure ATargetUninstallUpdate(Sender: TObject);
|
||||
procedure OnProjectGroupFileNameChanged(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure TVPGDblClick(Sender: TObject);
|
||||
@ -132,6 +131,7 @@ type
|
||||
procedure InitTVNode(Node: TTreeNode; Const ACaption: String;
|
||||
ANodeData: TNodeData);
|
||||
procedure OnProjectGroupDestroy(Sender: TObject);
|
||||
procedure OnProjectGroupFileNameChanged(Sender: TObject);
|
||||
procedure OnTargetAdded(Sender: TObject; Target: TPGCompileTarget);
|
||||
procedure OnTargetDeleted(Sender: TObject; Target: TPGCompileTarget);
|
||||
procedure OnTargetActiveChanged(Sender: TObject; Target: TPGCompileTarget);
|
||||
@ -440,27 +440,6 @@ begin
|
||||
UpdateIDEMenuCommandFromAction(Sender,cmdTargetUninstall);
|
||||
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(
|
||||
Sender: TObject; Item: TIDEMenuCommand);
|
||||
begin
|
||||
@ -815,15 +794,16 @@ Var
|
||||
N: TTreeNode;
|
||||
I: Integer;
|
||||
begin
|
||||
FActiveTarget:=nil;
|
||||
FProjectGroupTVNode:=Nil;
|
||||
FTargetNodes[False]:=Nil;
|
||||
FTargetNodes[True]:=Nil;
|
||||
For I:=0 to TVPG.Items.Count-1 do
|
||||
begin
|
||||
begin
|
||||
N:=TVPG.Items[I];
|
||||
TNodeData(N.Data).Free; // Would be nice to have a FreeAndNilData method in TTreeNode.
|
||||
N.Data:=Nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TProjectGroupEditorForm.GetNodeIndex(ANodeType: TNodeType; ANodeData: TPGCompileTarget): Integer;
|
||||
@ -925,6 +905,27 @@ begin
|
||||
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;
|
||||
const ACaption: String; ANodeType: TNodeType): TTreeNode;
|
||||
Var
|
||||
@ -1059,8 +1060,8 @@ Var
|
||||
begin
|
||||
TVPG.BeginUpdate;
|
||||
try
|
||||
ShowFileName; // Needs FProjectGroupTVNode
|
||||
FreeNodeData;
|
||||
ShowFileName; // Needs FProjectGroupTVNode
|
||||
TVPG.Items.Clear;
|
||||
FTargetNodes[False]:=Nil;
|
||||
FTargetNodes[True]:=Nil;
|
||||
|
Loading…
Reference in New Issue
Block a user