From d17a272442a59d4fc00dd2a98dca7d2beadb0afe Mon Sep 17 00:00:00 2001 From: mattias Date: Sat, 6 Sep 2003 22:00:25 +0000 Subject: [PATCH] added ToolStatus check for package compilation git-svn-id: trunk@4579 - --- ide/main.pp | 33 ++++++++++++++++++++++----------- ide/mainbar.pas | 1 + packager/pkgmanager.pas | 5 ++++- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/ide/main.pp b/ide/main.pp index 68f0eee21c..4dbab58c3b 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -524,6 +524,7 @@ type procedure UpdateCustomToolsInMenu; // external tools + function PrepareForCompile: TModalResult; override; function DoRunExternalTool(Index: integer): TModalResult; function DoBuildLazarus(Flags: TBuildLazarusFlags): TModalResult; override; function DoExecuteCompilationTool(Tool: TCompilationTool; @@ -5602,17 +5603,9 @@ function TMainIDE.DoBuildProject(BuildAll: boolean): TModalResult; var DefaultFilename: string; begin - if ToolStatus=itDebugger then begin - Result:=MessageDlg('Stop debugging?', - 'Stop current debugging and rebuild project?', - mtConfirmation,[mbYes,mbNo,mbAbort],0); - if Result=mrNo then Result:=mrCancel; - if Result<>mrYes then exit; - - Result:=DebugBoss.DoStopProject; - if Result<>mrOk then exit; - end; - + Result:=PrepareForCompile; + if Result<>mrOk then exit; + Result:=DoSaveForBuild; if Result<>mrOk then exit; @@ -6265,6 +6258,21 @@ begin SetToolMenuItems; end; +function TMainIDE.PrepareForCompile: TModalResult; +begin + Result:=mrOk; + if ToolStatus=itDebugger then begin + Result:=MessageDlg('Stop debugging?', + 'Stop current debugging and rebuild project?', + mtConfirmation,[mbYes,mbNo,mbAbort],0); + if Result=mrNo then Result:=mrCancel; + if Result<>mrYes then exit; + + Result:=DebugBoss.DoStopProject; + if Result<>mrOk then exit; + end; +end; + function TMainIDE.DoCheckSyntax: TModalResult; var ActiveUnitInfo:TUnitInfo; @@ -9755,6 +9763,9 @@ end. { ============================================================================= $Log$ + Revision 1.645 2003/09/06 22:00:24 mattias + added ToolStatus check for package compilation + Revision 1.644 2003/08/30 18:53:07 mattias using default colors, when theme does not define them diff --git a/ide/mainbar.pas b/ide/mainbar.pas index 1056ba8598..3ab8425917 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -410,6 +410,7 @@ type function DoShowProjectInspector: TModalResult; virtual; abstract; + function PrepareForCompile: TModalResult; virtual; abstract; function DoBuildLazarus(Flags: TBuildLazarusFlags): TModalResult; virtual; abstract; function DoExecuteCompilationTool(Tool: TCompilationTool; const WorkingDir, ToolTitle: string diff --git a/packager/pkgmanager.pas b/packager/pkgmanager.pas index 5f2d1245ed..f1d069e17f 100644 --- a/packager/pkgmanager.pas +++ b/packager/pkgmanager.pas @@ -1917,6 +1917,9 @@ begin if APackage.AutoCreated then exit; + Result:=MainIDE.PrepareForCompile; + if Result<>mrOk then exit; + // check graph for circles and broken dependencies if not (pcfDoNotCompileDependencies in Flags) then begin Result:=CheckPackageGraphForCompilation(APackage,nil); @@ -1928,7 +1931,7 @@ begin Result:=MainIDE.DoSaveForBuild; if Result<>mrOk then exit; end; - + PackageGraph.BeginUpdate(false); try // automatically compile required packages